在linq中连接不同的字段类型
本文关键字:字段 类型 linq 连接 | 更新日期: 2023-09-27 18:09:05
在linq中加入不同的字段类型
public partial class Product
{
public int ID { get; set; }
public string CategoryID
{
get { return Myclass.increse(CategoryID); }
set { CategoryID = value; }
}
public string Name { get; set; }
}
public partial class ProductCategory
{
public int ID { get; set; }
public string Name { get; set; }
}
var query = (from c in dContext.ProductCategories
join p in dContext.Products
on Myclass.EncodeMD5(c.ID.ToString()) equals p.CategoryID
select new { id = p.ID, cat = p.CategoryID, name = p.Name, cat1 = c.Name }
).ToList();
该字段应转换为字符串然后函数运行EncodeMD5
错误:LINQ to Entities不识别方法System。字符串EncodeMD5(System.String)'方法,此方法无法翻译
您不能在LINQ-to-(某些数据库后端)中调用任意. net方法- EF(等)的全部意义在于它希望从您的表达式创建SQL -涉及where
子句的东西。它可以使用简单的属性和操作符,以及一些它知道并可以映射到SQL的方法,但它不能执行一些它从未听说过的东西(increse
, EncodeMD5
等),它怎么知道要写什么SQL ?
CategoryID
的"增加"(不管那是什么)。因此,您的查询最终将处理这些预先计算的值:
on c.IDHash equals p.CategoryIDHash