I am using Entity Framework, and I have a line of code that is taking a var and translating it back to an iint for the database.
var record = context.enrollments.SingleOrDefault
(row => row.userId == int.Parse(UserID) && row.classId == int.Parse(ClassID));
Whenever I try to run it I receive rhis error. "LINQ to Entities does not recognize the method 'Int32 Parse(System.String)' method, and this method cannot be translated into a store expression."
I have tried this as well
var record = context.enrollments.FirstOrDefault
(row => row.userId == Convert.ToInt32(UserID)
&& row.classId == Convert.ToInt32(ClassID));
and all I receive is this error message, "LINQ to Entities does not recognize the method 'Int32 ToInt32(System.String)' method, and this method cannot be translated into a store expression
and finally I have tried this as well, which I know is unusual, but it has worked in the past for similar situations.
var record = context.enrollments.SingleOrDefault
(row => row.userId == CommonDLL.Sanitize<int>.ConvertType(UserID)
&& row.classId == CommonDLL.Sanitize<int>.ConvertType(ClassID));
In which I get this error. As you can see I have tried seveal different things and nothing is working, so any help would be great.
Best Solution
in
Linq to Entity
, you should use the methods in yourquery
which is supported by yourprovider
to convert them toexpression tree
to run on yourData Base
side.all providers must support some methods by default called
Canonical Functions
(Read More Here), and also you can define youruser defined function
andstored procedure
asedm functions
to use inlinq query
(Read More Here) and (Here).in addition you can use methods which is supported by providers and can be converted to
expression tree
which are in EntityFunctions and SqlFunctions.and finally about your question, you can convert
UserID
andClassID
before your query, like this: