【发布时间】:2017-07-25 02:58:11
【问题描述】:
我有一个基类Company 和两个派生类Retailer 和Supplier。
我必须向 Retailer 类添加一个枚举,但现在当我尝试创建一个新的 Supplier 时,我收到以下 SQL 错误:
无法将值 NULL 插入“OperatingStatus”列、“Company”表;列不允许空值。插入失败。声明已终止。
如果有帮助,这里是类和枚举:
public abstract class Company
{
...
}
public class Retailer : Company
{
public OperatingStatus OperatingStatus { get; set; }
...
}
public class Supplier : Company
{
...
}
public enum OperatingStatus
{
Unknown = 0,
Active = 1,
Inactive = -1
}
有没有办法在不将枚举移动到基类的情况下完成这项工作?我所需要的只是使其默认为0。
【问题讨论】:
-
如果这看起来是 TPH,
Company表中的OperatingStatus列应该允许NULL,你是如何创建它的? -
Company没有此属性。 -
根据错误消息,它确实 -
Companytable,而不是类。您不需要在类中使用可为空的类型,EF 迁移会在数据库 table 中创建可为空的 column,这就是为什么我要询问表/列是否为由 EF 创建或由您手动创建。 -
我试图使用数据注释/流利的 api 来解决它,但我没有成功,所以我创建了一个新的迁移以允许空值并解决了问题。谢谢。
标签: c# entity-framework-6