Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个linq查询有效吗?_Linq - Fatal编程技术网

这个linq查询有效吗?

这个linq查询有效吗?,linq,Linq,这个linq查询有效吗 var qry = ((from member in this.ObjectContext.TreeMembers.Where(m => m.UserId == userId && m.Birthdate == null) select member.TreeMemberId).Except(from item in this.ObjectContext.FamilyEvents select item.TreeM

这个linq查询有效吗

    var qry = ((from member in this.ObjectContext.TreeMembers.Where(m => m.UserId == userId && m.Birthdate == null)
              select member.TreeMemberId).Except(from item in this.ObjectContext.FamilyEvents select item.TreeMemberId));


    var mainQry = from mainMember in this.ObjectContext.TreeMembers
                  where qry.Contains(mainMember.TreeMemberId)
                  select mainMember;

这将转换为多个sql调用还是仅一个sql调用?它能被优化吗?基本上,我有两个表,我想从表1中选择datetime为null的记录,并且该记录不应存在于表2中。

确定查询是否将进行多次调用的最简单方法是设置数据上下文的
.Log
属性。我通常将其设置为写入
debugoutputwitter
。我们可以找到这种类的一个很好的例子


但是,一般来说,如果您使用的类属性没有直接映射到where子句或join子句中的数据库字段,则它通常会进行多次调用。从您提供的内容来看,您的场景似乎不是这样的,但我不能绝对确定并建议您使用上面列出的方法。

为什么不执行它并查看一下?我讨厌人们将StackOverflow视为他们个人的人工编译器。@Martinho Fernandes:-+1。看完你的评论后,我想说你部分是对的。谢谢你通知我-哇!关于不映射到数据库的自定义属性的好答案和好提示。是的,你在写,在我的场景中不是这样的。