如何将LINQ中的字符串列表返回到实体多对多关系?

时间:2010-02-24 19:25:10

标签: linq-to-entities

我有一个需要封装多对多关系的视图模型。

我有我的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>
            };

我错过了什么?

1 个答案:

答案 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创建它。