i'm trying to compare a int with a string in the join method of linq lambda, like this:
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");
but i'm getting an error on the ToString():
System.NotSupportedException: LINQ to Entities does not recognize the method 'Int32 ToInt32(System.String)' method, and this method cannot be translated into a store expression.
How do i solve this?
Are you working with Linq to SQL? Linq is trying to convert your lambda to sql query. Unfortunately, ToString
is not so easily supported.
You can materialize your tables with ToArray()
before join, but it can be expensive.
Look at this article and this question.
Try this:
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() });
Have you tried this??
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");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With