我已将我的数据库导入到我的EF模型中,并且我尝试创建一个返回相应ViewModel的linq查询。
表 Items 反映 ItemDetailVM 类
表 Property 反映 PropertyVM 类
Items 和 Property 之间有一个导航属性
我试图写的linq查询在...
之下我的问题是如何在 ItemDetailVM 中映射 prop ?
var query = (from items in DbContext.Items
select new ItemDetailVM
{
item1 = items.id,
item2 = items.value,
//prop = CODE HERE... select new PropertyVM{ ....}
}).ToList();
class ItemDetailVM
{
string item1;
string item2;
List<Property> prop;
}
class PropertyVM
{
string prop1;
string prop2;
string prop3;
}
答案 0 :(得分:2)
试试这个:
var query = (from items in DbContext.Items
select new ItemDetailVM
{
item1 = items.id,
item2 = items.value,
prop = items.prop.Select(p=>new PropertyVM{prop1=p.prop1,
prop2=p.prop2,
prop3=p.prop3}).ToList()
}).ToList();
如果您已停用延迟加载,则需要调用Include
扩展名方法:
var query = (from items in DbContext.Items.Include(i=>i.prop)
select new ItemDetailVM
{
item1 = items.id,
item2 = items.value,
prop = items.prop.Select(p=>new PropertyVM{prop1=p.prop1,
prop2=p.prop2,
prop3=p.prop3}).ToList()
}).ToList();