LINQ lambda - 将int转换为字符串

Pok*_*oku 8 .net c# linq exception-handling

我试图在linq lambda的join方法中将int与字符串进行比较,如下所示:

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");
Run Code Online (Sandbox Code Playgroud)

但我在ToString()上收到错误:

System.NotSupportedException:LINQ to Entities无法识别方法'Int32 ToInt32(System.String)'方法,并且此方法无法转换为商店表达式.

我该如何解决这个问题?

Pio*_*fer 3

您正在使用 Linq to SQL 吗?Linq 正在尝试将您的 lambda 转换为 sql 查询。不幸的是,ToString并不那么容易支持。

您可以在连接之前具体化您的表ToArray(),但这可能会很昂贵。

看看这篇文章这个问题