我正在尝试将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)'方法,并且此方法无法转换为商店表达式。
我如何解决这个问题?
答案 0 :(得分:3)
您是否正在使用Linq进行SQL? Linq正在尝试将您的lambda转换为sql查询。不幸的是,ToString
并不那么容易支持。
您可以在加入之前使用ToArray()
实现您的表格,但这可能会很昂贵。
答案 1 :(得分:2)
试试这个:
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() });
答案 2 :(得分:1)
你试过这个吗?
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");