【发布时间】:2013-10-23 13:39:23
【问题描述】:
我有 NxN 表,想象一下:
User(id, ...) Addresses(id, ...)
UserAddresses 包含用户和地址的 FK。 据我所知,Entity Framework User 创建的 Entity 包含一个 UserAddresses 的集合。 Address 包含一个 UserAddresses 的集合,而一个特定的 UserAddress 包含一个对 User 和一个 Address 的引用。
现在我想通过 linq 进行下一个查询。 对于特定的用户 ID,仅获取启用标志设置为 true 的 userAddresses。 对于特定的用户 id,userAddresses 可以包含多个条目,但只为该特定用户设置一个。
我能做的查询是:
context.User.Include( x => x.UserAddresses )
.Include( x => x.UserAddresses.Select(y => y.Address) )
.Single( x => x.id == USER_ID )
但我真正想要的不是为该用户加载所有 UserAddresses...只有包含启用的那个,设置为 TRUE!
有人可以帮我做这个查询吗?
【问题讨论】:
-
您使用的是哪种
Include?据我所知System.Data.Objects.ObjectQuery的Include方法只接收1 个字符串参数? -
@KingKing 我做了一个扩展方法,将 lambda 表达式格式化为字符串并将其传递给“本机”ObjectQuery 包含方法。
-
如果是这样,你的问题的答案是
impossible,Include没有那么强大,你不能在包含之前执行任何filter。
标签: c# .net linq entity-framework include