2

私はSQL中心の世界(私はかなり流暢です)からEF dDbContectへの旅を最初にコードで行っていますが、苦労しています。以下は簡単な例です。次の単純な SQL クエリを作成したいと思います (作成に 60 秒かかりました)。

SELECT
    HP.HospitalID
FROM
    Hospitals AS HP
    JOIN NHSTrusts AS NT
    ON NT.NHSTrustID = HP.NHSTrust_NHSTrustID

WHERE
    HP.HospitalName + ', ' + NT.NHSTrustName = 'My hospital name including trust'

EF スタイルのクエリとして。これを行う方法がわかりません。また、何かを行う方法がわからなくなるたびに SQL に戻りたくありません。

誰でも助けることができますか:

  • EF dbContent で上記のクエリを組み立てる方法について
  • ヘルプの一般的な情報源について
4

4 に答える 4

3

エンティティと DB コンテキストが適切に設定されていると仮定すると、クエリは次のようになります。

var hospitalIds = 
    from hp in dbContext.Hospitals
    where 
        hp.HospitalName == "..." &&
        hp.Trust.NHSTrustName == "..."
    select hp.HospitalId;

もちろん、このクエリは、結果を繰り返し処理する (または.ToList()/を使用する.ToArray()) ことによって具体化する必要があります。

エンティティとコンテキストを適切に定義するには、MSDN の次の優れたチュートリアルを参照してください: http://msdn.microsoft.com/en-us/data/jj193542

于 2013-10-04T09:17:00.210 に答える
1

まずはLinqを試してみてください。以下のように書くことができます。クエリに誤りがある可能性がありますが、Intellisense によって修正されます。

var s  = (from c in Context.Hospitals
          from h in Context.NHSTrusts
          where c.NHSTrust_NHSTrustID==h.NHSTrustID 
          && string.Format("{0},{1}",c.HospitalName,h.NHSTrustName).Equals("My hospital name including trust")

          select c.HospitalId).FirstOrDefault();
于 2013-10-04T09:11:35.693 に答える
0

いくつかの例を取得するのに適した場所として、 101 の linq サンプル
をお勧めします 。これには、WHERE の使用から GROUP BY ステートメントまでのすべてが含まれています。

于 2013-10-04T09:15:15.673 に答える