1
我不得不從數據庫中下載一些複雜的數據,這些數據集合了大量有關後期的有用信息。我想這樣做:表達式不能轉換爲商店表達式
var list = (from message in db.BLOGS_MESSAGES
where message.BLOG_ID == blogId
orderby message.CREATED_DATE descending
select new BlogMessage()
{
AUTHORS = **(from author in message.AUTHORS
select author.USERS).ToArray()**,
CREATED_BY = message.CREATED_BY,
CREATED_DATE = message.CREATED_DATE,
BLOG_MESSAGE_ID = message.POST_ID,
MESSAGE_TITLE = message.TITLES.TITLE,
TAGS = **(from tag in message.TAGGED_MESSAGES
select tag.TAGS).ToArray()**,
LOGIN = message.USERS.LOGIN,
MESSAGE = message.MESSAGES.MESSAGE,
MESSAGE_ID = message.MESSAGE_ID,
POST_NOTE = message.POST_NOTES.Sum(x => (long?)x.NOTE) ?? 0/message.POST_NOTES.Count(),
}).ToList();
但它不起作用。它引發了一個無法在商店表達式中轉換表達式的異常。 到目前爲止,我做到了這樣:
var mlist = (from message in db.BLOGS_MESSAGES
where ....
orderby ....
select new {
AUTHORS = (from author in message.AUTHORS
select author.USERS),
....
}
List<BlogMessage> list = new List<BlogMessage>();
foreach(var item in mlist)
{
list.Add(new BlogMessage()
{
AUTHORS = item.AUTHORS.ToArray(),
...
});
}
是有可能使其工作「的第一種方式 - 風格」?
如果從'更改類型'BlogMessage.AUTHORS'網友[]''到IEnumerable的'或'的IQueryable '那麼第一種方式將是工作,而無需調用'ToArray的' –
Grundy