EF 4.1代码优先的复合钥匙
我想弄清楚如何使用EF代码First 4.1 RC的复合键。
目前,我正在使用[Key]数据注释,但我无法指定多个键。
如何指定一个组合键?
这是我的例子:
public class ActivityType
{
[Key]
public int ActivityID { get; set; }
[Required(ErrorMessage = "A ActivityName is required")]
[StringLength(50, ErrorMessage = "Activity Name must not exceed 50 characters")]
public string ActivityName { get; set; }
}
我需要“活动名称”也是一个关键。 当然,我可以对此进行编码,但那不是很好的数据库设计。
您可以使用Key
注释标记ActivityID
和ActivityName
属性,也可以使用@taylonr描述的流畅API。
编辑:
这应该工作 - 用注释定义的组合键需要明确的列顺序:
public class ActivityType
{
[Key, Column(Order = 0)]
public int ActivityID { get; set; }
[Key, Column(Order = 1)]
[Required(ErrorMessage = "A ActivityName is required")]
[StringLength(50, ErrorMessage = "Activity Name must not exceed 50 characters")]
public string ActivityName { get; set; }
}
我们不使用注释,而是重写模型构建器,在这种情况下,您可以执行如下操作:
modelBuilder.Entity<Activity>().HasKey(a => new { a.ActivityId, a.ActivityName });
链接地址: http://www.djcxy.com/p/90207.html