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

Dim*_*imo 17 c# asp.net entity-framework

尝试使用此代码时:

var model = new MasterEntities();

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

model.Customers.Add(customer);
model.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

我明白了:

{"无法将值NULL插入列'Sessionid',表'master.dbo.Column';列不允许空值.INSERT失败.\ r \n语句已终止."}

"Sessionid"列实际上是主键,用[KEY]标记如下:

 public class Customers
    {   
        [Key]
        public long Sessionid { get; set; }
        public long? Pers { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

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

那我怎么解决这个问题呢?如果我删除[KEY]我得到"entity type has no key defined"例外...

Dim*_*imo 36

我通过这样添加来解决它[DatabaseGenerated(DatabaseGeneratedOption.None)]:

public class Customers
    {   
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public long Sessionid { get; set; }
        public long? Pers { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)