gpt4 book ai didi

c# - 子查询中的 LINQ-to-SQL 和扩展方法

转载 作者:行者123 更新时间:2023-11-30 14:20:49 24 4
gpt4 key购买 nike

我的扩展方法是:

public static IEnumerable<T> FilterCultureSubQuery<T>(this Table<T> t)
where T : class
{
return t;
}

我试图在这个查询中使用它

var test = from p in t.Products
select new
{
Allo = p,
Allo2 = (from pl in t.ProductLocales.FilterCultureSubQuery()
select pl)
};

我的方法扩展的签名应该是什么?我总是收到此错误:

Method 'System.Collections.Generic.IEnumerable`1[ProductLocale] FilterCultureSubQuery[ProductLocale](System.Data.Linq.Table`1[ProductLocale])' has no supported translation to SQL.

I also tried this signature:

public static IQueryable<T> FilterCultureSubQuery<T>(this Table<T> t)
where T : class
{
return t;
}

我得到了这个错误:

Method 'System.Linq.IQueryable`1[ProductLocale] FilterCultureSubQuery[ProductLocale](System.Data.Linq.Table`1[ProductLocale])' has no supported translation to SQL.

谢谢

最佳答案

您方法的签名很好。如前所述,问题是它“没有支持的 SQL 转换”。

DLINQ 正在尝试将该语句转换为一行 SQL,并将其发送到数据库。该方法没有翻译。

我建议使用 Where 子句重写过滤器。

关于c# - 子查询中的 LINQ-to-SQL 和扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/753453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com