0
    var Query2 = from x in CoreDatabase.Set<tblPerson>()
                 .Include(a => a.tblApplicationInterface.Select(b => b.tblApplicationName)
                 .Where(c => c.AppplicationName == "MshHumanResources"))

                 select x;

インクルードパス式は、タイプで定義されたナビゲーションプロパティを参照する必要があります。参照ナビゲーションプロパティには点線のパスを使用し、コレクションナビゲーションプロパティには選択演算子を使用します。私は単に書き込もうとしています

ここで機能するもの:

Select * 
From tblPerson a INNER JOIN tblApplicationInterface b 
on a.id = b.id
INNER Join tblApplicationName c
ON b.fkid=c.id
Where b.ApplicationName like 'MshHumanResources'
4

3 に答える 3

2

それはどのようにInclude機能するかではありません。join代わりに使用したい:

var Query2 = from a in CoreDatabase.Set<tblPerson>()
             join b in CoreDatabase.Set<tblApplicationInterface>() on a.id equlas b.id
             join c in CoreDatabase.Set<tblApplicationName>() on b.fkid equals c.id
             where c.AppplicationName == "MshHumanResources"
             select a;

これは、A から列を選択するだけです。他のテーブルから列を選択する場合は、クラスを作成して必要なフィールドを組み合わせるか、匿名型を使用します。

于 2012-09-28T16:22:04.513 に答える
0

直接、あなたは言うことができます

var people = CoreDatabase.Set<tblPerson>().Where( p => 
p.tblApplicationInterface.tblApplicationName.ApplicationName == "MshHumanResources" );

あなたのナビゲーション プロパティを正しく理解している場合。これにより、アプリ インターフェイスのアプリ名が MshHumanResources である人が選択されます。

于 2012-09-28T16:24:22.287 に答える
0

これを試して:

var Query2 = CoreDatabase.Set<tblPerson>
                 .Include("tblApplicationInterface")
                 .Include("tblApplicationInterface.tblApplicationName")
                 .Where(x => x.ApplicationName == "MshHumanResources");
于 2012-09-28T16:22:54.597 に答える