如何将Int数据库字段映射到布尔实体框架模型字段?

时间:2012-11-19 23:40:56

标签: .net entity-framework ado.net

使用Int字段(与其他DBMS和编程语言兼容)在数据库中存储Boolean值。我如何自定义数据库优先生成的实体框架模型(默认情况下将Int字段映射到Int32)以确保它将使用1/0(而不是“true”/“false “)在应用程序端使用Boolean类型时生成的SQL查询?

1 个答案:

答案 0 :(得分:3)

一种解决方法是在模型中使用另一个未映射到DB的布尔属性。在该属性集方法中,您可以将整数值设置为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;
      }

    }
  }
}