Инициализация вложенных строго типизированных объектов в LINQ to Entities - PullRequest
1 голос
/ 03 апреля 2012

Рассмотрим этот пример

    public class FooWrapper
{
    public FooWrapper() { }

    public Foo FooObject { get; set; }
    public Bar BarObject { get; set; }
}


public IEnumerable<FooWrapper> ListFoosWithBars(int userID)
{
    IEnumerable<Bar> tempBar = ListBarsByUserID(userID);

    IEnumerable<FooWrapper> results = (
        from f in _entities.FooSet
        join b in tempBar on f.ID equals b.foos.ID
        select new FooWrapper 
        {
            FooObject = f,
            BarObject = b
        });

    return results;
}

что если мой класс типа Foo имеет свойства типа

public class Foo(){
FProperty1{get; set;}
FPorperty2{get; set;}
}

public class Bar(){
BProperty1{get; set;}
BProperty2{get; set;}
}

, и теперь я хочу инициализировать свой объект в запросе, как этот

 select new FooWrapper 
        {
            FooObject.FProperty1 = f,
            BarObject.BProperty2 = b
        });

я могу это сделать?Как это будет работать?

1 Ответ

1 голос
/ 03 апреля 2012

То, что вы хотите:

select new FooWrapper 
    {
        FooObject = new Foo { FProperty1 = f },
        BarObject = new Bar { BProperty2 = b }
    });
...