【发布时间】:2012-01-09 16:11:54
【问题描述】:
我正在尝试将 int 与 linq lambda 的 join 方法中的字符串进行比较,如下所示:
database.booking.Join(database.address,
book => book.bookno,
afh => afh.addressid.ToString(),
(book, afh) => new { booking = book, add = afh })
.Where(book => book.address.name == "test");
但我在 ToString() 上遇到错误:
System.NotSupportedException:LINQ to Entities 无法识别方法“Int32 ToInt32(System.String)”方法,并且该方法无法转换为存储表达式。
我该如何解决?
【问题讨论】:
-
尝试使用
SqlFunctions.StringConvert((double)afh.addressid)而不是ToString(); -
@Poku linq-to-entiites 不支持任何转换,例如 conert.Tostring() 和 convert.ToInt32 , convert.ToDatetime..
-
@Poku 我最好的建议是首先将数据库中的记录检索到列表中,然后在该列表上进行转换和比较..然后它对你有用...
-
但是当我无法进行比较时,我将如何加入数据?
标签: c# .net linq exception-handling