EF Codefirst如何使用DataAnnotations从多个列创建密钥

ntt*_*akr 3 entity-framework-4 ef-code-first c#-4.0

我试图在具有Attributes和DataAnnotation的类中声明一个复合键.

[Key]
[Column(Order=1)]
public Guid Id { get; set; }

[Key]
[Column(Order=2)]
public int Nr { get; set; }
Run Code Online (Sandbox Code Playgroud)

似乎没有这样做.我到目前为止所能找到的只是一些流畅的选择,但我只想用注释来做这件事.

为了澄清:我正在寻找一种DataAnnotation方法来创建一个主键由2个字段Id和Nr组成的表...

谢谢你的帮助安德烈亚斯

小智 9

您可以使用Fluent API轻松完成以下操作:

modelBuilder.Entity<YourClass>().HasKey(obj => new {obj.Id,obj.Nr});
Run Code Online (Sandbox Code Playgroud)

此外,您可以创建从其继承的单独类,EntityTypeConfiguration并在其构造函数中添加此行:

public class <*Name*>Mapping:EntityTypeConfiguration<*Name*> 

      public <*Name*>Mapping(){
             this.HasKey(obj => new {obj.Id,obj.Nr});
      }
}
Run Code Online (Sandbox Code Playgroud)