在Entity Framework中将model属性设置为boolean

时间:2009-09-18 18:05:31

标签: entity-framework

我刚刚开始学习实体框架,并且对ORM没有多少经验。

在我的小应用程序中,我有一个表,这个sql server表有几列,包括PrimaryKey(int)a Name(字符串)和Flag(tinyint)。

当我将此表导入其中时,会自动将Flags的数据类型指定为字节。这很好,但Flag应该是一个布尔值,所以我

  1. 点击“映射详细信息”
  2. 选择了我的旗帜属性
  3. 将类型从字节更改为布尔值
  4. 重建应用程序
  5. 然后我收到了这个错误:

      

    错误2019:指定了成员映射   无效。类型   'Edm.Boolean [可空=真,默认值='   成员'MyFlag'的类型   'MyModel.MyItem'不兼容   同   'SqlServer.tinyint [可空=真,默认值='   成员'MyFlag'的类型   'MyModel.Store.MyItem'。

    有没有办法

    MyItem item = new MyItem();
    item.Flag = true;
    

    并在数据库中将Flag保存为1?

2 个答案:

答案 0 :(得分:18)

您可以在数据库中将MyFlag的数据类型更改为 bit

答案 1 :(得分:3)

我认为对于tinyint,您必须创建一个分部类,并使用适当读/写该字段的单独字段。但是,该框架会将bit字段正确解释为boolean

您可以尝试使用以下内容作为部分内容..

public partial class MyItem
{
    public bool FlagBool
    {
        get { return Flag == 1; }
        set { Flag = value ? 1 : 0; }
    }
}