每当我有一个带有BIGINT
主键的表时,我可以插入新记录,但不能更新现有记录。当我尝试进行更新时,出现以下错误:
"The specified value is not an instance of type 'Edm.Decimal'"
样品型号:
public class Model
{
public long ModelID { get; set; }
public DateTime ProcessedOn { get; set; }
}
示例更新代码:
public bool SetModelProcessed(long id)
{
var entity = db.models.SingleOrDefault(m => m.ModelID == id);
entity.ProcessedOn = DateTime.Now;
db.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified);
db.SaveChanges();
}
即使是像这个这样简单的模型对我来说也失败了。有谁知道发生了什么?
编辑
我尝试了代码优先的方法。Entity Framework 4.3 甚至无法生成 mySQL 数据库,这显然是 mySQL 和添加迁移功能后的 Entity Framework 版本的问题。
自从降级到 4.1.10715.0 版后long
,ulong
仍然有效。如果属性是ulong
.
EntityType 'Model' has no key defined. Define the key for this EntityType.
使用long
代替ulong
不是我需要的,但我猜它必须这样做。