

Only Primitive Types ('Such As Int32, String, And Guid') Are Supported İn This Context.
-
var tagid = int.Parse(Request.QueryString["tag"]);
var tagRepo = new Repository<TBL_ARTICLE_TAG>();
var articleRepo = new Repository<TBL_ARTICLE>();
var userRepo = new Repository<TBL_USER>();
var atags = tagRepo.SelectAll(p => p.ATAG_TAG_ID == tagid).ToList();
var data = articleRepo.GetAllByDescending(p=>atags.Any(x=>x.ATAG_ARTICLE_ID==p.ARTICLE_ID), // atags içindeki idler eşleşiyorsa alıcak
order => order.ARTICLE_DATE, 0, 10).
Join(userRepo.SelectAll(),
a => a.ARTICLE_USER_ID,
u => u.USER_ID,
(a, u) => new
{
ARTICLE = a,
USER = u,
}
).ToList();Unable to create a constant value of type 'ustadan.TBL_ARTICLE_TAG'. Only primitive types ('such as Int32, String, and Guid') are supported in this context.
şeklinde hata alıyorum tür dönüşümüyle ilgili bi problem sanırım nasıl çözebilirim
var data = articleRepo.GetAllByDescending(p=>atags.Any(x=>x.ATAG_ARTICLE_ID==p.ARTICLE_ID), bu satırı
var data = articleRepo.GetAllByDescending(p=>p.ARTICLE_ID==atags[0].ATAG_ARTICLE_ID), olarak değiştirsem de benzeri bir hata alıyorum.
-
biraz kötü kod olmuş hacım,
var atags = tagRepo.SelectAll(p => p.ATAG_TAG_ID == tagid).ToList();
mesela bu satırı
var atags = tagRepo.Where(p => p.ATAG_TAG_ID == tagid).ToList(); olarak değiştirmelisin. bi denesene
-
dediğin olsun diye
var atags = tagRepo.Find(p => p.ATAG_TAG_ID == tagid).ToList();
yaptım bu Find fonksiyonu benim repository classımdan geliyor o da
public IEnumerableFind(Expression<Func> where)
{
return _objectSet.Where(where);
}böyle birşey ama burada sorun yok atags başarılı bir şekilde doluyor sorun burada
var data = articleRepo.GetAllByDescending(p=>atags.Any(x=>x.ATAG_ARTICLE_ID==p.ARTICLE_ID)
ARTICLE_ID si atagsdan gelen ATAG_ARTICLE_ID olan verileri çekmek istiyorum.
Düşündüm de Where ile değilde join ile çeksem daha iyi olacak galiba
bu arada join işlemi kötü görünebilir onun üstünde de çalışıyorum tabi şurda beni s*klerlerse
-
abi descending i öyle kullanamazsın..
sen descending olarak constant tip vermişsin.
öncelikle any ile listini çek, ardından . diyip descending et bi propertyine göre
ayrıca bu işler gönül işi değil olması gerekeni diyorum :)
-
var data = articleRepo.GetAllByDescending(null,
order => order.ARTICLE_DATE, 0, 10).
Join(atags,
art => art.ARTICLE_ID,
atag=>atag.ATAG_ARTICLE_ID,
(article, tag) => new {ARTICLE = article}).
Join(userRepo.SelectAll(),
a => a.ARTICLE.ARTICLE_USER_ID,
u => u.USER_ID,
(a, u) => new
{
ARTICLE=a,
USER = u,
}
).ToList();şu şekilde çözdüm 2 join kullanarak ama performans olarak pek iç açıcı görünmüyor.