Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Integer Contains Using Linq

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#...

like image 827
Andrew Avatar asked Jun 14 '13 14:06

Andrew


2 Answers

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;

like image 200
Arif Anwarul Avatar answered Nov 01 '22 05:11

Arif Anwarul


Try:

var results = from e in myDbContext.Employees
  where SqlFunctions.StringConvert((double)e.Id).Contains(filter)
  select e;
like image 29
xlecoustillier Avatar answered Nov 01 '22 06:11

xlecoustillier