私は最初、中、姓のような従業員レコードを含む1つのテーブルを持っています。私はこれらすべてを入力するための3つのテキストボックスを持っています。 今すぐ.net側に基づいてデータをフィルタリングする単一のLINQクエリを書きたいと思います。これらの3つのフィールドのいずれも空白にすることができます。 これは、1つの汎用LINQクエリを書くための方法ですか?名前のミドルネームと姓に基づいてデータのフィルタリングのための一般的なLINQクエリを書く方法
答えて
あなたは怒鳴る
_context.tablename.whereた(p => p.firstName.contains(txtFirstName)|| p.middleName.contains(txtMiddleName)のような1つのLINQとクエリまたは条件を書くことができ|| p.lastName.contains(txtLastName))。ToList();
変更tablename
上記のLINQクエリ
public IList<Employee> GetEmployees(string first, string middle, string last)
{
var query = context.Employees.AsQueryable();
if (!string.IsNullOrWhiteSpace(first))
{
query = query.Where(x => x.FirstName == first);
}
if (!string.IsNullOrWhiteSpace(middle))
{
query = query.Where(x => x.MiddleName == middle);
}
if (!string.IsNullOrWhiteSpace(last))
{
query = query.Where(x => x.LastName == last);
}
return query.Select(x =>
new Employee
{
FullName = string.Join(" ", new string[] { x.FirstName, x.MiddleName, x.LastName}.Where(y => !string.IsNullOrWhiteSpace(y)))
})
.ToList();
}
であなたとデータベーステーブル使用されている基準値
var criteria = new
{
FirstName = default(string),
MiddleName = default(string),
LastName = "Doe",
};
var query = from record in Context()
where !string.IsNullOrEmpty(criteria.FirstName)
&& record.FirstName == criteria.FirstName
|| !string.IsNullOrEmpty(criteria.MiddleName)
&& record.MiddleName == criteria.MiddleName
|| !string.IsNullOrEmpty(criteria.LastName)
&& record.LastName == criteria.LastName
select record;
そのような何かを試してみてくださいを持っている場合だけで検証反復します。
public List<Employee> RetrieveEmployees(string firstName, string lastName, string middleName)
{
var query = from employees in context.Employees
where (string.IsNullOrEmpty(firstName) || employees.FirstName == firstName) &&
(string.IsNullOrEmpty(lastName) || employees.LastName == lastName) &&
(string.IsNullOrEmpty(middleName) || employees.MiddleName == middleName)
select employees;
return query.ToList();
}
非常に適切ではない: '&&'これは理解に関するものではありません|| '' –
前に行く、それが評価についてです注文。 Cでは、 '&&'は '||'の前に評価され、SQLは同じことを行います: 'AND'は' OR'の前に評価されます。あなたは基本的に 'C1 OR(C2 AND C3)OR(C4 AND C5)OR C6'を書いています(そして、これらのカッコは実際には理解のためだけにあります) –
あなたはそれを修正したのでもう分かりません。ご理解頂けるとありがたいです! –
- 1. Python SSL証明書の一般名に基づくホスト名の確認
- 2. 一般的な関連のlinqクエリ
- 3. 次のユーザーモデルの姓と名字にアクセスする方法(mongooseに基づいて)
- 4. 複数のテーブルに基づいてクエリを書く方法は?
- 5. データに基づいて一般的な列と行を表示します。サイズ
- 6. C#LINQ:クエリの他の値に基づいて匿名型プロパティを設定する効率的な方法は?
- 7. 一般的な名前の一般的なスペルミスをチェックするためのJSON Webサービス。 "Aberaham Lincoln"?
- 8. 曜日に基づいてデータベースのデータをフィルタリングする方法
- 9. ドロップダウンメニューの値に基づいてデータをフィルタリングする方法は?
- 10. 配列値に基づいてクエリを書く方法
- 11. 動的フィールドに基づくIQueryableのフィルタリング
- 12. Linqのない一般的なコレクション
- 13. Hibernateで一般的なスクロール可能な結果のための基準またはHQLを書くには?
- 14. 名前に基づくユニークなデータ、SQLサーバーからのメール
- 15. 一般的な引数型(Delphi)に基づく型推論
- 16. 最も一般的な値に基づくグループ化
- 17. コレクションプロパティ名に基づく動的linqからデータセットへのデータロー
- 18. 一般的なフィールドでIQueryableを動的にフィルタリングする方法
- 19. 名前を持たない値に基づいてdjango QuerySetをフィルタリングする最も良い方法(ランク)
- 20. 分割プレフィックスと姓(配列データに基づく)
- 21. C#任意のアルゴリズムのための一般的な方法
- 22. シャイニー:ユーザー入力データの場所に基づいてデータをフィルタリングする方法
- 23. WCFでの一般的なロギングメソッドの名前とユーザー
- 24. 一般的な戻り値の型に基づいてメソッドのオーバーロードをシミュレートする方法C#
- 25. メタデータに基づいてRのtmコーパスの文書をフィルタリングする方法は?
- 26. R行の名前に基づくバインド
- 27. 1つの単一の値に基づいてリモートテーブルをフィルタリングする方法は?
- 28. swiftを使用してUITapGestureRecognizerの一般的なメソッドを書く方法
- 29. テーブルからの名前に基づいてフィルタリングされたdata.framesを作成する方法は?
- 30. 一般的な方法と
完全に動作する例えばチェック要旨https://gist.github.com/dandohotaru/d0598c7dd9599cc4e173b478d7e4cf82 –