相关疑难解决方法(0)

在 LINQ 查询中使用 Expression<Func<>>

我想定义一个Func<ProductItemVendor, bool>名为的过滤器表达式CompareProductItemVendorIds,它可以在我的整个应用程序中使用,主要是在实体框架/LINQ 查询中。

我了解到,为了能够在LINQ查询中使用此过滤器,我必须按照其声明Expression<Func<>>,而不是只Func<>。我了解这样做的原因,而且我很容易做到这一点。

但是我在查询中使用该表达式时遇到了以下问题。

首先,代码如:

ProductItem.ProductItemVendors.FirstOrDefault(CompareProductItemVendorIds)
Run Code Online (Sandbox Code Playgroud)

注意:ProductItem是一个数据库实体,它的ProductItemVendors属性是一个导航集合。

产生错误:

`实例参数:无法从“System.Collections.Generic.ICollection”转换为“System.Linq.IQueryable”

其次,代码如:

var results = from v in Repository.Query<ProductItemVendor>()
              where CompareProductItemVendorIds(v)
              select v;
Run Code Online (Sandbox Code Playgroud)

产生错误:

'CompareProductItemVendorIds' 是一个“变量”,但像“方法”一样使用

所以我有我漂亮闪亮的新Expression<Func<>>。如何在我的 LINQ 查询中使用它?

c# linq entity-framework

6
推荐指数
1
解决办法
3797
查看次数

标签 统计

c# ×1

entity-framework ×1

linq ×1