尝试使用此代码时:
var model = new MasterEntities();
var customer = new Customers();
customer.Sessionid = 25641;
model.Customers.Add(customer);
model.SaveChanges();
我得到:
{“无法将值NULL插入表'master.dbo.Column'的列'Sessionid'中;该列不允许为空。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; }
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句