LINQ lambda -将int转换为字符串
本文关键字:转换 字符串 int lambda LINQ | 更新日期: 2023-09-27 18:16:07
我试图比较一个int与一个字符串在linq lambda的连接方法,像这样:
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():
系统。NotSupportedException: LINQ to Entities不识别'Int32 ToInt32(System.String)'方法,并且该方法不能转换为存储表达式。
如何解决这个问题?
您正在使用Linq to SQL吗?Linq正在尝试将lambda转换为sql查询。不幸的是,ToString
不容易被支持。
您可以在连接之前使用ToArray()
实现您的表,但是它可能会很昂贵。
看这篇文章和这个问题
试试这个:
var bookinger = database.booking.Join(database.address,
book => book.bookno,
afh => afh.addressid,
(book, afh) =>
new { booking = book, add = afh })
.Where(book => book.address.name == "test")
.Select(new { booking, add = add.ToString() });
你试过了吗??
var bookinger =
database.booking.Join(database.address,
book => book.bookno,
afh => Convert.ToString(afh.addressid),
(book, afh) =>
new { booking = book, add = afh })
.Where(book => book.address.name == "test");