【发布时间】:2013-11-01 13:04:40
【问题描述】:
尝试使用此代码时:
var model = new MasterEntities();
var customer = new Customers();
customer.Sessionid = 25641;
model.Customers.Add(customer);
model.SaveChanges();
我明白了:
{"无法将值 NULL 插入到列 'Sessionid', 表中 'master.dbo.Column';列不允许空值。插入 失败。\r\n语句已终止。"}
“Sessionid”列实际上是主键,用[KEY]标记如下:
public class Customers
{
[Key]
public long Sessionid { get; set; }
public long? Pers { get; set; }
}
所以根据this 的问题,似乎当属性标记为[KEY] 时,EF 忽略了我自己的 Sessionid 声明,因为它希望数据库分配值。
那么我该如何解决呢?如果我删除 [KEY] 我会得到 "entity type has no key defined" 异常...
【问题讨论】:
-
你的表实际上叫
Column吗?在master数据库中? -
也许你的 SessionID 有自动增量?
-
我同意@Martin。我认为映射数据库和类时出了点问题。
-
不,@MartinSmith 不是 :) 我只是对其进行了编辑以使其更清晰。
标签: c# asp.net entity-framework