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

entity-framework

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

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

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

  1. 单击“映射详细信息”
  2. 选择我的旗帜物业
  3. 将类型从字节更改为布尔值
  4. 重建应用程序

然后我得到了这个错误:

2019年错误:指定的成员映射无效。类型'MyModel.MyItem'中成员'MyFlag'的类型'Edm.Boolean [Nullable = True,DefaultValue =]'与成员'MyFlag'的'SqlServer.tinyint [Nullable = True,DefaultValue =]'不兼容输入'MyModel.Store.MyItem'。

有办法吗?

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

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

一般承认的答案

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


热门答案

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

您可以尝试下面的部分作为部分..

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



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因