[英]EF6 enum error in derived class
我有一个基类Company
和两个派生类Retailer
和Supplier
。 我必须在Retailer
类中添加一个枚举,但是现在当我尝试创建新的Supplier
,出现以下SQL错误:
无法将值NULL插入表'Company'的'OperatingStatus'列中; 列不允许为空。 INSERT失败。 该语句已终止。
如果有帮助,请参见以下类和枚举:
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
。
传统上,有两种方法可以在数据库中实现“继承”。并且EF确实支持这两种方法。 您似乎已选择将所有类都放在一个大表中(每个层次结构的表)。 在这种情况下,您需要使该字段为Nullable(可以为null),以便数据不会出现错误。 您仍然可以在业务对象级别而不是数据库级别上验证该字段。
另一种方法(每个具体类的表)是分别为供应商中的新属性和零售商中的区域属性创建单独的表。这将是继承的第二种解决方案。
http://www.entityframeworktutorial.net/code-first/inheritance-strategy-in-code-first.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.