我有一个需要封装多对多关系的视图模型。
我有我的LINQ to Entites查询返回相应的列表,但无法弄清楚如何返回对象列表。
我有一个Foo表和一个Bar表。 Bar有一个FK到Foo.ID和一个Description字符串。我想创建一个具有Foo.ID的FooViewModel,以及所有Bar.Descriptions的列表。
public class FooViewModel {
public int ID {get; set; }
public IEnumerable Descriptions { get; set; }
}
var all = from f in ctx.Foo.Include("Bar")
select new FooViewModel
{
ID = f.ID,
Descriptions = <insert magic here>
};
我错过了什么?
答案 0 :(得分:1)
在Linq to Sql中,Foo对象将具有属性“Bar”(如果它是一对多,则为“Bars”),因此它只是:
var all = from f in ctx.Foo
select new FooViewModel
{
ID = f.ID,
Descriptions = f.Bars;
};
我被告知它在Linq-to-Entity中的工作方式相同,条件是当该属性在L2S中自动创建时,必须手动执行一些明确的任务,让L2e创建它。