C# 4.0 在表中插入带有实体框架的行,标识列不带主键

C# 4.0 在表中插入带有实体框架的行,标识列不带主键,c#-4.0,entity-framework-4,C# 4.0,Entity Framework 4,我这里有不同的情况 其中,FromUserId和ToUserId是主键,InvitationId是标识列 现在我正试着插入 Invitation newInvitation = context.Invitations.CreateObject(); newInvitation.FromUserId = 100; newInvitation.ToUserId = 1111; newInvitation.AcceptToken = "stringva

我这里有不同的情况

其中,FromUserIdToUserId是主键,InvitationId是标识列

现在我正试着插入

Invitation newInvitation = context.Invitations.CreateObject();                        
newInvitation.FromUserId = 100;
newInvitation.ToUserId = 1111;
newInvitation.AcceptToken = "stringvalue";
newInvitation.RejectToken = "stringvalue";
newInvitation.InvitedDate = DateTime.Now
newInvitation.ExpireDate = DateTime.Now.AddDays(30f);
newInvitation.Status = "active";
context.SaveChanges();
我们都知道在这里我们会遇到这样的例外

"Modifying a column with the 'Identity' pattern is not supported. Column: 'InvitationId'. Table: 'Invitation'."
可能的解决方案 将邀请ID更改为主键并刷新edmx文件


但有没有办法插入Entry framework维护当前结构的对象?

为什么FromUserId和ToUserId是主键?某人只能邀请其他人一次?对我来说,InvitationId看起来像是正确的主键。是的,这就是计划,一个用户只能邀请另一个用户一次。下一次活动会发生什么?如果乔邀请特德参加聚会,那么乔就不能邀请特德参加聚会。应该是这样吗?在这种情况下,用户只会向用户B邀请一次,在B接受邀请后,A不会再次邀请B。Party没有概念。那么如果FromUserId和ToUserId是主键,为什么需要标识列?PK就是你所需要的。