EF Codefirst 如何使用 DataAnnotations 从多列创建键

发布于 2024-10-16 01:16:51 字数 343 浏览 1 评论 0原文

我正在尝试使用 Attributes 和 DataAnnotation 获取在类中声明的复合键。

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

[Key]
[Column(Order=2)]
public int Nr { get; set; }

似乎没有得到这个进展。 到目前为止我所能找到的只是一些流畅的选项,但我只想通过注释来完成此操作。

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

感谢您的帮助 安德烈亚斯

I am trying to get a composite key declared in a class with Attributes and DataAnnotation.

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

[Key]
[Column(Order=2)]
public int Nr { get; set; }

does not seem to get this going.
All I could find up to now was some fluent option, but I'd like to do this with annotations only.

To clarify:
I am searching for a DataAnnotation way to create a table with a primary key consisting of 2 fields Id and Nr...

Thanks for your help
Andreas

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

为人所爱 2024-10-23 01:16:51

您可以使用 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});
      }
}

You can easily do this as follows using Fluent API:

modelBuilder.Entity<YourClass>().HasKey(obj => new {obj.Id,obj.Nr});

Also, you can create separate class that inherit from EntityTypeConfiguration and add this line in its constructor:

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

      public <*Name*>Mapping(){
             this.HasKey(obj => new {obj.Id,obj.Nr});
      }
}
吃不饱 2024-10-23 01:16:51

我上周问了类似的问题,但正在寻找流畅的语法。 Morteza 提供的答案(搜索更多有关 ef/CTP5 的答案 - 他很棒)还给出了使用数据注释的语法。

这是链接。< /a> 希望这有帮助。

I asked a similar question last week but was looking for the fluent syntax. The answer provided by Morteza (search for more of his answers regarding anything ef/CTP5- he is awesome) also gives the syntax for using data annotations.

Here is the link. Hope this helps.

通知家属抬走 2024-10-23 01:16:51

在类定义的上面写:

[PrimaryKey(nameof(Id),nameof(Nr))]

In the up of Class Definition write :

[PrimaryKey(nameof(Id),nameof(Nr))]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文