我意识到我需要从EF中的导航属性中过滤掉一些实体。我找到了微软自己的页面:
https://msdn.microsoft.com/en-us/data/jj574232#explicitFilter
我已经尽可能地将他们的代码复制到vb.net中。我没有工作后更改了过滤器,因此它应该过滤掉所有内容(id = -99)。这仍然无效。它获取发票但不过滤任何相关的发票详细信息。
Dim Inv = MyBase.Context.Invoices.Include(Function(x) x.InvoiceDetails).Where(Function(x) x.id = id).FirstOrDefault
MyBase.Context.Entry(Inv).Collection(Function(x) x.InvoiceDetails).Query().Where(Function(d) d.id = -99).Load()
Dim cc = Inv.InvoiceDetails.Count
If cc > 1 Then
Debug.Write(cc)''This should not run as all should be filtered out but it does
End If
有什么想法吗?我的代码似乎与他们非常接近。无论是否使用“.include”,我都试过这个。
答案 0 :(得分:0)
请注意,目前无法过滤加载了哪些相关实体。包括将永远带来所有相关 实体。强>
实体框架团队正在努力。这是即将发布的功能