![](/img/trans.png)
[英]Raw SQL query with Entity Framework does not work when calling SELECT of model's field
[英]How to select an entity based on it's association, like a WHERE IN query in raw SQL
假设我有一个类似的实体:
Parent
它有一个孩子的集合:
Parent.Children
我正在尝试让所有父母将children.Id放在列表中。
Session.QueryOver<Parent>( () => parentAlias)
.JoinAlias( () => pareintAlias.Children, () => childrenAlias)
.WHereResitrictionOn(childrenAlias.Id).IsIn(childrenList)
.List<Parent>();
但是上面的方法不起作用,它表示索引引用超出范围或类似。
更新
我的桌子:
家长编号
儿童-parentId
我的实体有一个链接到Children表的HasMany集合。
因此查询将类似于:
SELECT *
FROM Parents p
INNER JOIN Children c ON (c.parentID = p.id)
WHERE c.id in (SELECT id from Children WHERE id in (....) )
我有一个孩子名单:
List<Children> childrenList;
更新:需要指定<Child>
使用QueryOver
var results = Session.QueryOver<Parent>()
.JoinQueryOver<Child>(parent => parent.Children)
.WHereResitrictionOn(child => child.Id).IsIn(childrenList)
.List<Parent>();
或使用LINQ
var results = (from parent in Session.Query<Parent>()
from child in parent.Children
where child.Id.IsIn(childrenList)
select parent).List();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.