所以我有以下型号MVC实体框架模型:一个主键和2个键的问题
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Appointment
{
public int Id { get; set; }
public string Name{ get; set; }
}
,我希望他们分配给另一台有独立的主键,像这样
public class UserAppointment
{
public int Id { get; set; }
public int UserId { get; set; }
public int AppointmentId { get; set; }
public virtual Appointment Appointment {get;set;}
public virtual User User {get;set;}
}
我想要的是Id是一个关键(唯一的,自动生成等),同时将强制UserId和AppointmentId具有独特的组合。
eg
this is what i want
Id UserId AppointmentId
1 1 2
2 1 3
and not this
Id UserId AppointmentId
1 1 2
2 1 2
3 1 2
目前,我做了我的背景下一些模型构建器语句来配置我的钥匙
modelbuilder.Entity<UserApointment>()
.HasRequired(e => e.User)
.HasMany(u => u.Appointment)
.HasForeignKey(e => e.UserId);
modelbuilder.Entity<UserApointment>()
.HasRequired(e => e.Appointment)
.HasMany(u => u.Users)
.HasForeignKey(e => e.AppointmentId);
但它仍然让我插入带有类似的用户和任用IDS记录。
有关如何处理此问题的任何建议非常感谢! 谢谢!
当您可以使用复合PK时,为什么要维护'UserApointment'的'Id'列。 – Eranga 2012-04-26 14:20:06
不适合在另一个与UserAppointment有一对多关系的表上使用它。我觉得它更容易查询? – gdubs 2012-04-26 14:31:15