C # + LINQ + ADO.NET EF, joindre 2 tables et tout renvoyer sans spécifier manuellement tous les champs

ado.net c# entity-framework linq

Question

J'ai une simple requête LINQ sur ADO.NET Entity Framework comme suit

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

J'essaie de tout sélectionner parmi itemA et itemB sans spécifier toutes les TableA et TableB .

rien à penser ???

Réponse acceptée

Est-ce ce dont vous avez besoin?

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

Vous pouvez également déclarer une classe de résultat qui vous aide à générer l'objet de résultat sans spécifier tous les champs:

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

Réponse populaire

De votre requête de lien, il semble que vous ayez 2 tables avec une relation un à un.

Si c'est le cas, vous pouvez configurer votre modèle d'entité de sorte que deux tables soient fusionnées en une seule entité. Pour plus de détails, voir:

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



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow