我试图在具有Attributes和DataAnnotation的类中声明一个复合键。
[Key]
[Column(Order=1)]
public Guid Id { get; set; }
[Key]
[Column(Order=2)]
public int Nr { get; set; }
似乎没有这样做。 我到目前为止所能找到的只是一些流畅的选择,但我只想用注释来做这件事。
澄清: 我正在寻找一种DataAnnotation方法来创建一个主键包含2个字段Id和Nr的表...
感谢您的帮助 安德烈亚斯
答案 0 :(得分:9)
您可以使用Fluent API轻松完成以下操作:
modelBuilder.Entity<YourClass>().HasKey(obj => new {obj.Id,obj.Nr});
此外,您可以创建从EntityTypeConfiguration
继承的单独类,并在其构造函数中添加此行:
public class <*Name*>Mapping:EntityTypeConfiguration<*Name*>
public <*Name*>Mapping(){
this.HasKey(obj => new {obj.Id,obj.Nr});
}
}
答案 1 :(得分:0)
我上周问了一个类似的问题但是正在寻找流利的语法。 Morteza提供的答案(搜索关于ef / CTP5的任何答案的更多答案 - 他很棒)也给出了使用数据注释的语法。
这是link.希望这有帮助。