实体框架中的非数据库生成主键

时间:2014-10-20 00:04:32

标签: sql-server entity-framework

我试图建立一个这样的表:

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)。

0 个答案:

没有答案