3

Intフィールドは(他のDBMSおよびプログラミング言語との互換性のために)データベースに値を格納するために使用されBooleanます。データベースで最初に生成されたEntityFrameworkモデル(デフォルトでIntフィールドをマップする)をカスタマイズして、タイプオンのInt32使用中に生成されたSQLクエリで1/0( "true" / "false"ではなく)を使用するようにするにはどうすればよいですか?Booleanアプリケーション側?

4

1 に答える 1

3

回避策の 1 つは、DB にマップされていないモデルで別のブール型プロパティを使用することです。そして、そのプロパティ set メソッドで、整数値を int プロパティに設定できます。

//EF Generated/Poco Do not Modify
public partial MyTable
{
  public int MyField { get; set; }
}

これらは部分クラスであるため、別のファイルを作成します

public partial MyTable
{
  public bool MyBoolField
  {
    get
    {
      return this.MyField != 0;
    }
    set
    {
      if (value)
      {
        this.MyField = 1;
      }
      else 
      {
        this.MyField = 0;
      }

    }
  }
}
于 2012-11-20T06:15:28.503 に答える