c# – 无法在ASP.NET MVC实体框架中将值NULL插入到列中 - 代码日志

c# – 无法在ASP.NET MVC实体框架中将值NULL插入到列中

尝试使用此代码时:

var model = new MasterEntities();

var customer = new Customers();
customer.Sessionid = 25641;

model.Customers.Add(customer);
model.SaveChanges();

我得到:

{“Cannot insert the value NULL into column ‘Sessionid’, table
‘master.dbo.Column’; column does not allow nulls. INSERT
fails.\r\nThe statement has been terminated.”}

“Sessionid”列实际上是主键,标记为[KEY],如下所示:

 public class Customers
    {   
        [Key]
        public long Sessionid { get; set; }
        public long? Pers { get; set; }
    }

所以根据this的问题,似乎当属性被标记为[KEY]时,EF忽略了我自己的Sessionid声明,因为它期望数据库分配该值。

那我该怎么解决呢?如果我删除[KEY],我得到“实体类型没有键定义”异常…

我通过添加[DatabaseGenerated(DatabaseGeneratedOption.None)]来解决这个问题:

public class Customers
    {   
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public long Sessionid { get; set; }
        public long? Pers { get; set; }
    }
http://stackoverflow.com/questions/19727337/cannot-insert-the-value-null-into-column-in-asp-net-mvc-entity-framework

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – 无法在ASP.NET MVC实体框架中将值NULL插入到列中