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 运算符。我只是想写

这里有用的东西:

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 Query2 = CoreDatabase.Set<tblPerson>
                 .Include("tblApplicationInterface")
                 .Include("tblApplicationInterface.tblApplicationName")
                 .Where(x => x.ApplicationName == "MshHumanResources");
于 2012-09-28T16:22:54.597 回答
0

可以直接说

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

如果我正确理解您的导航属性。这将选择应用界面的应用名称为 MshHumanResources 的人。

于 2012-09-28T16:24:22.287 回答