나는 linq을 SQL에 사용하고있다. 올바른 레코드를 반환하는 함수를 사용하는 쿼리를 실행하고 있습니다. linq 절 내에서 수행하는 방법을 모르는 if 문을 사용할 수 있도록 함수를 사용하고 있습니다. 코드가 아래에 복사됩니다. 오류를 반환합니다 : "GetPageOwner (int 32) SQL에 대한 지원되는 변환이 없습니다"무엇을 잘못하고 있습니까? 동일한 결과를 얻으려면 어떻게 수정해야합니까? SQL에SQL에 대한 지원되는 번역이 없습니다?
return (from page select new Result
{
pageOwner = GetPageOwner(page.page_id)
});
public Post GetPageOwner(int pageid)
{
var posts = (from dp in db.Posts where dp.pageid == pageid select dp);
var returned = posts;
if (posts.Count() > 0)
{
var latest = posts.OrderByDescending(o => o.Date).FirstOrDefault();
var sharedsamedayaslatest = (from p in posts where p.Date.AddDays(1) >= latest.Date select p);
if (sharedsamedayaslatest.Count() > 1)
{
var followedpost = (from p in posts from s in db.Subscriptions where s.Subscriber == UID && s.Subscribedto == p.UserId select p);
var count = followedpost.Count();
if (count == 1)
{
returned = followedpost;
}
else if (count > 1)
{
returned = (from s in followedpost let reposts = GetPostReposts(s.id) let rating = GetPostRating(s.id) let score = reposts + rating orderby score descending select s);
}
else
{
//no follower shared this post so return the most liked
returned = (from s in sharedsamedayaslatest let reposts = GetPostReposts(s.id) let rating = GetPostRating(s.id) let score = reposts + rating orderby score descending select s);
}
}
else
{
//no shares on the day the latest share
returned = sharedsamedayaslatest;
}
}
else
{
//only one post
returned = posts;
}
return returned.FirstOrDefault(); //order by userid gets a random one
}
http://stackoverflow.com/questions/332670/simple-linq-to-sql-has-no-support-translation-to-sql –
투표의 마감 - 정확한 두 배의 질문에 답변 함. Pavel은 첫 번째 댓글에서 링크를 제공했습니다. – TomTom
반송 부품 전에 다른 물품이 있습니까? – Bastardo