我有以下简单实体:
public class Something{
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public int ID { get; set; }
public string NAME { get; set; }
public int STATUS { get; set; }
}
如您所见,我不希望从数据库生成 ID,但我将手动输入。这是我的 DbContext 类:
public class MyCEContext : DbContext {
...
public DbSet<Something> Somethings { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
string dbsch = "myce";
modelBuilder.Entity<Something>().ToTable("SOMETHING", dbsch);
}
}
这里没有什么特别的。但是这段代码失败了:
using (MyCEContext ctx = new MyCEContext()) {
Something t = new Something();
t.ID= 1;
t.NAME = "TEST";
t.STATUS = 100;
ctx.Somethings.Add(t);
ctx.SaveChanges();
}
这是错误:
指定的值不是“Edm.Decimal”类型的实例
通常,EF 总是尝试将值发送到 int 主键字段,我得到 edm.decimal 错误。
有什么帮助吗?