C# と .NET Framework 4.0 を使用して Entity Framework Code First 4.4.0.0 ライブラリを開発しています。
where句の配列を使用して、クエリを動的に作成する方法を探しています。そして、私はこれを見つけました(ここ):
IQueryable<Product> SearchProducts (params string[] keywords)
{
IQueryable<Product> query = dataContext.Products;
foreach (string keyword in keywords)
{
string temp = keyword;
query = query.Where (p => p.Description.Contains (temp));
}
return query;
}
しかし、私はそれを使用する方法がわかりません。このクエリを実行するにはどうすればよいですか?
私は通常これを行います:
using (var context = new MyContext())
{
context.Configuration.ProxyCreationEnabled = false;
var users = from u in context.Users.Include("WhoHasBlockedMe").Include("Friends")
from act in u.WantsToDo
where act.ActivityId == activityId &&
u.Gender == genderId &&
u.City == city &&
u.Country == countryIsoCode
select u;
// This user doesn't exit on database
if ((users == null) ||
(users.Count() == 0))
{
ctx.StatusCode = System.Net.HttpStatusCode.NotFound;
ctx.SuppressEntityBody = true;
}
else
{
usersList = new List<UserProfile>();
foreach(User us in users.ToList())
{
usersList.Add(UserProfile.CreateUserView(us, userId));
}
ctx.StatusCode = System.Net.HttpStatusCode.OK;
}
}
そのクエリを実行するにはどうすればよいですか?