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)
| 归档时间: |
|
| 查看次数: |
22061 次 |
| 最近记录: |