在LINQ中,我有一些关于.include的问题。如果有人能向我展示实现这一点的查询,我将不胜感激:
我有两个实体,User和Validation (这是一系列验证代码)。它们在EF5中的关系是1:*。我正在尝试获取一个User对象并立即加载Validations集合。
此时,我正在做这件事(cx是using块中的上下文):
var user = cx.Users
.Where(u => u.UserGuid.Equals(UserGuid))
.FirstOrDefault();
if (user == null)
{
return 0;
}
var validation = cx.Validations
.Where(v => v.Code.Equals(Code))
.Where(v => v.UserId.Equals(user.UserId))
.FirstOrDefault();但是我如何在一个查询中实现这一点,这样我就可以使用
user.Validations.FirstOrDefault();而不会得到错误,而只获得满足Validation.Code ==代码测试的验证?
谢谢你的帮助(我知道我听起来很困惑,但那是因为我真的很困惑)。
发布于 2013-05-04 20:50:45
你有没有试过这样的东西:
var validation = cx.Validations.Where(v=>v.Code==Code &&
cx.Users.Any(u=>u.UserID==v.UserID &&
u.UserGuid==UserGuid)
).FirstOrDefault();发布于 2013-05-04 20:57:01
您可能还需要通过执行以下操作来包括相关记录:
var user = cx.Users
.Where(u => u.UserGuid.Equals(UserGuid))
.Include(u => u.Validations)
.FirstOrDefault();但是,您应该能够使用以下命令选择请求的验证
user.Validations
.FirstOrDefault(v => v.Code.Equals(Code));https://stackoverflow.com/questions/16374442
复制相似问题