0

FirstName 列と Last Name 列を含むデータベース テーブルがあり、入力が氏名である検索を行う必要があります。私はエンティティ フレームワークを使用して c# で作業しています。私は次のコードを使用しています:

  var user = context.User.Where(i => i.FirstName + " " + i.LastName == fullName)

これを行うためのより良い、またはよりエレガントな方法はありますか?

fullName に分割することを考えましたが、名前と姓が複数の単語で構成されているため、検索が非常に厄介なようです。

4

2 に答える 2

3

オブジェクト自体を汚染したくない場合は、それを機能させるための式を作成する必要があり、これをクラス自体または他のクラスにカプセル化できます。

http://blog.cincura.net/230786-using-custom-properties-as-parameters-in-queries-in-ef/で例を見つけることができます。

于 2013-10-22T11:20:57.357 に答える
-2

名と姓を連結した完全な名前を返すだけの FullName プロパティをビジネス オブジェクトに作成できます。その後、必要に応じて LINQ/Lambda でこのプロパティを使用できます。

public class MyUser
{
   public int UserId { get; set; }
   public string FirstName {get; set;}
   public string LastName {get; set;}
   public string FullName
   {
      get
        {
           string fullName=firstName;
           if(!string.isNullOrEmpty(LastName))
           {
               fullName= " "+ LastName;
           }
           return fullName;
        }
   } 
}
context.User.Where(i => i.FullName== fullName)
于 2013-10-22T10:17:38.567 に答える