C # + LINQ + ADO.NET EF, verknüpfen Sie 2 Tabellen und geben Sie alles zurück, ohne alle Felder manuell anzugeben

ado.net c# entity-framework linq

Frage

Ich habe eine einfache LINQ-Abfrage in ADO.NET Entity Framework wie folgt

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

Ich versuche, alles aus itemA und itemB ohne alle TableA und TableB .

irgendwas gedanken ???

Akzeptierte Antwort

Ist das was du brauchst?

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

Alternativ können Sie eine Ergebnisklasse deklarieren, mit der Sie das Ergebnisobjekt erstellen können, ohne alle Felder anzugeben:

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

Beliebte Antwort

Aus Ihrer Link-Abfrage sieht es so aus, als hätten Sie 2 Tabellen mit einer Eins-zu-Eins-Beziehung.

In diesem Fall können Sie Ihr Entitätsmodell so konfigurieren, dass zwei Tabellen zu einer Entität zusammengefügt werden. Für Details siehe:

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



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum