[英]“Cannot insert the value NULL into column ” but my column is Nullable… Entity Framework 5 asp.net MVC
[英]Cannot insert the value NULL into column in ASP.NET MVC Entity Framework
尝试使用此代码时:
var model = new MasterEntities();
var customer = new Customers();
customer.Sessionid = 25641;
model.Customers.Add(customer);
model.SaveChanges();
我得到:
{"无法将值 NULL 插入列 'Sessionid',表 'master.dbo.Column';列不允许为空值。INSERT 失败。\\r\\n语句已终止。"}
“Sessionid”列实际上是主键,并用 [KEY] 标记如下:
public class Customers
{
[Key]
public long Sessionid { get; set; }
public long? Pers { get; set; }
}
所以根据这个问题,似乎当属性被标记为[KEY]
,EF 忽略了我自己的 Sessionid 声明,因为它期望数据库分配值。
那么我该如何解决这个问题呢? 如果我删除[KEY]
我得到"entity type has no key defined"
异常...
我通过添加[DatabaseGenerated(DatabaseGeneratedOption.None)]
来解决它,如下所示:
public class Customers
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long Sessionid { get; set; }
public long? Pers { get; set; }
}
您可以将 SQL 配置为在插入时自动生成(和自动递增)表的主键。 然后只需删除C#中的[Key],您不需要在应用程序中手动设置ID,db会为您生成它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.