2

私は4つのテーブルを持っています:

- Client with PK ClientID.
- Destination with PK DestinationID.
- Language with PK LanguageID.
- DestinationDetail with PK DestinationID.
- RL-Client-Destination with PKs ClientID and DestinationID.

クライアントには、ゼロまたはn個の宛先があります。宛先にはn個のDestinationDetailsがあり、これらの各DestinationDetailには言語があります。

Ok。特定のクライアントと特定の言語のすべてのDestinationDetailsを取得する必要があります。

私はこれを書き始めます:

try
   {
      ObjectQuery clientes = 
          guiaContext.Cliente;
      ObjectQuery destinos =
          guiaContext.Destino;
      ObjectQuery idiomas =
          guiaContext.Idioma;
      ObjectQuery detalles =
          guiaContext.DetalleDestino;

      IQueryable detalleQuery =
          from cliente in clientes
          from destino in destinos
          from idioma in idiomas
          from detalleDestino in detalles
          where destino.
          select detalleDestino;

   }
   catch
   {
   }
}

何かアドバイス?

ありがとう!

4

3 に答える 3

2

その線に沿って:

var detalleQuery =
          from client in guiaContext.Clients
          where client.ID == 1
          from destination in cliente.Destinations
          from destinationDetail in destination.DestionationDetails
          where destinationDetail.Language.Iso2Code == "es"
          select destinationDetail;
于 2009-03-21T07:38:24.377 に答える
1

linq joins を試しましたか:

LINQ を使用して複数のテーブルから選択する

于 2009-03-21T07:05:50.163 に答える
0

私の答え:


var db = new PracticeEntities();
            var destinations = db.DestinationDetails.
                Where(dd => dd.Language.Lang == "en-US" &&
                dd.Destination.Client.Any(c => c.Email == "abc@yahoo.com"));


ありがとう!

于 2009-03-21T09:13:56.580 に答える