C # + LINQ + ADO.NET EF, объединить 2 таблицы и вернуть все, не задавая все поля вручную

ado.net c# entity-framework linq

Вопрос

У меня есть простой запрос LINQ на ADO.NET Entity Framework следующим образом

var result = 
  from itemA in TableA
  join itemB in TableB on itemA.ID = itemB.ID
  select ??????

Я пытаюсь выбрать все из itemA и itemB не указывая все TableA и TableB .

что-нибудь мысли ???

Принятый ответ

Это то, что тебе надо?

    var result = from itemA in TableA 
                 join itemB in TableB on itemA.ID equals itemB.ID
                 select new { itemA, itemB };

Кроме того, вы можете объявить класс результата, который поможет вам построить объект результата, не указывая все поля:

    class ItemAB
    {
        public ItemAB(ItemA a, ItemB b)
        {
            FieldA1 = a.FieldA1;
            FieldA2 = a.FieldA2;
            FieldB1 = b.FieldB1;
            FieldB2 = b.FieldB2;

        }
        public int FieldA1 { get; private set; }
        public int FieldA2 { get; private set; }
        public int FieldB1 { get; private set; }
        public int FieldB2 { get; private set; }
    }

    var result = from itemA in TableA 
                 join itemB in TableB on itemA.ID equals itemB.ID
                 select new ItemAB(itemA, itemB);

Популярные ответы

Из вашего запроса ссылки выглядит, как будто у вас есть 2 таблицы с отношением один к одному.

Если это так, то способ сделать это состоит в том, чтобы настроить модель сущности так, чтобы две таблицы были объединены в одну сущность. Подробнее см .:

http://blogs.msdn.com/simonince/archive/2009/03/23/mapping-two-tables-to-one-entity-in-the-entity-framework.aspx



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему