3
我要實現以下目標:的LINQ to SQL構建自定義對象外部
return (from a in db.Tags
select new TagItem
{
ID = a.Id,
Name = a.Name
});
..但我不想去實現它這樣的,因爲我需要在其他地方使用完全相同的TagItem建設(對於連接)
所以這就是意圖,來調用構造TagItem我的方法:
return (from a in db.Tags
select ConstructTagItem(a));
而且方法構造對象以相同的方式:
private TagItem ConstructTagItem(Tag a)
{
return new TagItem { ID = a.Id, Name = a.Name};
}
但是這給了我以下錯誤:
Method 'TagItem ConstructTagItem(Tag)' has no supported translation to SQL.
有什麼辦法來實現這一目標?
解決方案(感謝丹尼爾Hilgarth):
return db.Tags.Select(ConstructTagItem);
而且方法:
private Expression<Func<Tag, TagItem>> ConstructTagItem
{
get { return a => new TagItem {ID = a.Id Name = a.Name }; }
}
我剛剛想通了,我不得不使用表達式,然後你寫了這個輝煌的答案,謝謝! ..我只有一個問題,我會嘗試在我的問題中解釋它,給我一秒 – Frost
@Frost:恕我直言,這應該是一個新問題,因爲它是別的。我不認爲這可以像你的第一個例子那樣完成。基本上,你只是改變了你的完整問題:)請創建一個新的問題,並接受我的答案。 –
這樣做,但我寫道:「因爲我需要在別處使用完全相同的TagItem構造(對於連接)」 – Frost