实体FrameWork过滤器导航属性不起作用

时间:2015-07-23 14:00:18

标签: .net vb.net entity-framework

我意识到我需要从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”,我都试过这个。

1 个答案:

答案 0 :(得分:0)

  

请注意,目前无法过滤加载了哪些相关实体。包括将永远带来所有相关   实体。

实体框架团队正在努力。这是即将发布的功能

Request this feature

请看 Explicit filter

LINQ Query - how sort and filter on eager fetch