問題の変数をwhere条件に入れたいと思います。Linqでどのようにできますか?
クエリの実行;
query = db.Kisi.Where(item => item.KAYITTIPI == registerType)
.Where(item => item.ADI.Contains(name))
.Where(item => item.SOYADI.Contains(surname))
.Where(item => item.UNVAN.Contains(title))
.OrderBy(item => item.ID)
.Skip(page)
.Take(top)
.ToList();
私はやってみたいです;
var query = db.Kisi.Where(item => item.KAYITTIPI == registerType)
if (String.IsNullOrEmpty(name))
{
.Where(item => item.ADI.Contains(name))
}
else if (String.IsNullOrEmpty(surname))
{
.Where(item => item.SOYADI.Contains(surname))
}
.Where(item => item.UNVAN.Contains(title))
.OrderBy(item => item.ID)
.Skip(page)
.Take(top)
.ToList();
エラー;
State Error CS0103 The name 'Where' does not exist in the current context
LINQクエリは個別のステートメントで作成でき、次のコマンドを呼び出すまで実行されませんToList
。
IQueryable<Kisi> query = db.Kisi.Where(item => item.KAYITTIPI == registerType);
if (!String.IsNullOrEmpty(name))
{
query = query.Where(item => item.ADI.Contains(name))
}
if (!String.IsNullOrEmpty(surname))
{
query = query.Where(item => item.SOYADI.Contains(surname))
}
var result = query.Where(item => item.UNVAN.Contains(title))
.OrderBy(item => item.ID)
.Skip(page)
.Take(top)
.ToList();
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加