C # + LINQ + ADO.NET EF, unire 2 tabelle e restituire tutto senza specificare manualmente tutti i campi

ado.net c# entity-framework linq

Domanda

Ho una semplice query LINQ su ADO.NET Entity Framework come segue

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

Sto cercando di selezionare tutto da itemA e itemB senza specificare tutte le TableA e TableB .

niente pensieri ???

Risposta accettata

è di questo che hai bisogno?

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

In alternativa, è possibile dichiarare una classe risultato che consente di creare l'oggetto risultato senza specificare tutti i campi:

    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);

Risposta popolare

Dalla tua query di collegamento sembra che tu abbia 2 tabelle con una relazione uno a uno.

In tal caso, il modo per farlo è configurare il modello di entità in modo tale che due tabelle vengano unite in un'unica entità. Per dettagli vedi:

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



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché