我试图建立一个这样的表:
Account
-ID (PK, int, not null)
-AccountID (PK, int, not null)
-... other scalars
现在,我希望像往常一样由数据库生成ID属性。但是,我希望复合键的另一部分AccountID来自我们使用的API。但是,在创建对象时:
using(var context = new FGContext){
Account a = context.Accounts.Create();
context.Accounts.Attach(a);
a.AccountID = GetAccountIDFromAPI();
....
context.SaveChanges();
}
我收到错误"属性' AccountID'是对象关键信息的一部分,不能修改。" - 这对我来说很有意义。我可以将AccountID作为主键的一部分删除,但是我们一直在查询它,并且出于性能原因我希望保持这种方式。
这有什么办法吗?我已经尝试过DatabaseGeneratedOption.None,它没有用(我假设因为该字段也标记为Key)。