Reputation: 6514
I'm having some difficulty writing a linq query that will check whether the consecutive digits in an integer are contained in the primary key of a table. So, suppose there is a table called Employees
with a primary key on the column Employees.Id
. Suppose this primary key is of Sql Server datatype INT
. I would like to write a linq query using Entity Framework Code First that will return all employees whose primary key contains the string 456. Something like:
string filter = "456";
var results = from e in myDbContext.Employees
where e.Id.Contains(filter)
select e;
The problem is that the Contains method is not offered for integer datatypes in C#...
Upvotes: 14
Views: 33366
Reputation: 106
You can convert both to string and then do the query. In your case:
string filter = "456";
var results = from e in myDbContext.Employees
where e.Id.ToString().Contains(filter)
select e;
Upvotes: 8
Reputation: 16351
Try:
var results = from e in myDbContext.Employees
where SqlFunctions.StringConvert((double)e.Id).Contains(filter)
select e;
Upvotes: 30