私は MVVM と Entity Framework を使用しており、モデル クラスが というデータベース テーブルにマップされていますEmplTable
。
このクラスにはいくつかのフィールドがあり、この製品を数人の顧客に出荷していますが、データベース テーブルに存在するフィールドは少し異なりますEmplTable
。
これらは、私のEmplTable
モデル クラスに存在するフィールドです。
public string EmplId
{
get { return this.emplId; }
set { if (this.emplId != value) { this.emplId = value; RaisePropertyChanged("EmplId"); } }
}
public string Name
{
get { return this.name; }
set { if (this.name != value) { this.name = value; RaisePropertyChanged("Name"); } }
}
//Bare NAV_Name og ikke Name når axaptaversjonen ikke er 4.1
public string NAV_Name
{
get { return this.nav_Name; }
set { if (this.nav_Name != value) { this.nav_Name = value; RaisePropertyChanged("NAV_Name"); } }
}
public string DataareaId
{
get { return this.dataareaId; }
set { if (this.dataareaId != value) { this.dataareaId = value; RaisePropertyChanged("DataareaId"); } }
}
public string NAV_StampId
{
get { return this.nav_StampId; }
set { if (this.nav_StampId != value) { this.nav_StampId = value; RaisePropertyChanged("NAV_StampId"); } }
}
しかし、ある顧客にはNav_Name
フィールドがなく、他の顧客には名前フィールドがありません。もちろん、いくつかの ifs などを実行して、さまざまなEmplTable
バージョンのさまざまなモデル クラスを作成し、現在の顧客の正しいテーブルをEmplTable
. ただし、これらのフィールドの一部が存在しないか、一部のフィールドが必須ではないことを指定できればよいでしょう。
別の顧客に存在しないフィールドに対してクエリを実行していませんが、EmplTable
これらの「無効な列名」エラーが引き続き発生します。
たとえば、次のクエリを実行したときにEmplTable
データベースに含まれていない場合、無効な列名を取得します。Nav_name
public EmplTable GetByIdAndFirma(string id, string firma)
{
return this.context.Employees.Where(p => p.EmplId == id && p.DataareaId == firma).FirstOrDefault();
}
これはEntity Frameworkの仕組みか何かによるものだと思いますが、一部のフィールドを必須ではないと指定できるような設定はありますか?