次の単純なエンティティがあります。
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 エラーが発生します。
何か助けはありますか?