Asp.net LINQ到EF-将结果映射到列表,带有子属性

Asp.net LINQ到EF-将结果映射到列表,带有子属性,asp.net,entity-framework-4,linq-to-entities,Asp.net,Entity Framework 4,Linq To Entities,我有两门课 public class Foo { public int Id { get; set; } public int price { get; set; } public Moo moo { get; set; } public Foo() { } } 及 注意Foo是如何具有Moo属性的 现在我得到了一个Foo对象列表(如EF所示) 我现在不想让它们成为EF对象,而是将它们存储在一个foo列表中 List<Foo> = (efFoo.Selec

我有两门课

public class Foo
{
    public int Id { get; set; }
    public int price { get; set; }
    public Moo moo { get; set; }

public Foo()
{
}
}

注意Foo是如何具有Moo属性的

现在我得到了一个Foo对象列表(如EF所示)

我现在不想让它们成为EF对象,而是将它们存储在一个foo列表中

List<Foo> = (efFoo.Select(o => new Foo()
        {
            Id = o.Id,
            price = o.price,
            code = o.code
        }).ToList());
List=(efFoo.Select(o=>newfoo())
{
内径=外径,
价格=o.price,
代码=o.code
}).ToList());
这很好,但如果我想包括Moo值,它会爆炸 i、 e

List=(efFoo.Select(o=>newfoo())
{
内径=外径,
价格=o.price,
代码=o.code,
moo.firstname=o.moo.firstname//这条线就是杀手
}).ToList());
我被告知“无效的初始化器成员声明器” 左边的moo似乎没有firstname的子属性。 显然我不能说:moo=o.moo,因为o.moo是一个实体框架moo,而不是一个纯粹的moo


谢谢!!

注意:我试图偷偷摸摸地创建一个接受实体框架Moo的方法,并输出一个普通的Moo,但Linq不喜欢我添加我自己的方法“Moo”应该是新的,对吧?我想你可以试试“Moo=newmoo{firstname=o.Moo.firstname,姓氏=o.Moo.姓氏}”先生,我永远欠你的债。愿我的第一个孩子长得像你。:D
var efFoo = (from d in myentity.Foo
                          where d.ID == 12
                          select d);
List<Foo> = (efFoo.Select(o => new Foo()
        {
            Id = o.Id,
            price = o.price,
            code = o.code
        }).ToList());
List<Foo> = (efFoo.Select(o => new Foo()
        {
            Id = o.Id,
            price = o.price,
            code = o.code,
            moo.firstname = o.moo.firstname  //this line is the killer
        }).ToList());