我正在尝试获取在具有属性和数据注释的类中声明的复合键。
[Key]
[Column(Order=1)]
public Guid Id { get; set; }
[Key]
[Column(Order=2)]
public int Nr { get; set; }
似乎没有进行下去。 到目前为止我所能找到的只是一些流畅的选项,但我只想通过注释来完成此操作。
澄清一下: 我正在寻找一种 DataAnnotation 方法来创建一个表,该表的主键由 2 个字段 Id 和 Nr 组成...
感谢您的帮助 安德烈亚斯
您可以使用 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});
}
}
我上周问了一个类似的问题,但正在寻找流畅的语法。 Morteza 提供的答案(搜索更多有关 ef/CTP5 的答案 - 他很棒)还给出了使用数据注释的语法。
这是链接。希望这有帮助。
在类定义的上方写:
[主键(名称(Id),名称(Nr))]