First, I would highly recommend to check your database design, whether there is a really good reason for ID
to be a string
. I would consider changing the ID
DB type to int
and you will get rid of this problem with converting.
The error you get means, that EF does not know how to convert the method Int32.Parse()
to SQL.
Basically you have two options how to deal with that:
Do the comparison outside the linq to entities:
var myVar= Entity.SetName.AsEnumerable()
.Where(p => int.Parse(p.ID) >= start &&
int.Parse(p.ID) <= end);
But this is not recommended, because you are reading whole result set from DB, before applying the where
condition.
Or make custom model defined function as described in this post on SO:
Convert String to Int in EF 4.0
or
Entity Framework: Where do I extend the CSDL/MSL?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…