首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fluent Api列订单系统

Fluent Api列订单系统
EN

Stack Overflow用户
提问于 2017-12-15 14:07:55
回答 1查看 604关注 0票数 1

我正在努力理解如何将这许多注释放入fluent api中。我只是不知道表示列顺序的语法。

代码语言:javascript
复制
public class UserNotification
   {
     [key]
     [Column(Order = 1)]
     public string UserId { get; set;}

     [key]
     [Column(Order = 2)]
     public int NotificationId {get; set;}

     public ApplicationUser User{get; set;}
     public Notification Notification {get; set;}
   }

我知道fluent Api会是这样的:

代码语言:javascript
复制
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
   modelBuilder.Entity<UserNotification>()
     .HasKey(n => new {n.UserId, n.NotificationId});

    // What about the Column Order? 
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-15 14:44:28

您可以按以下方式读取KeyColumn数据注释:

UserNotification有一个键,由UserIdNotificationId列组成,UserId是第一列,NotificationId是第二列。

也就是说,列order属性仅用于确定复合主键上下文中的列是第一列、第二列等等。

Fluent API不需要这样做,因为您既描述了键列,也描述了它们在HasKey表达式中的顺序:

代码语言:javascript
复制
modelBuilder.Entity<UserNotification>()
   .HasKey(n => new { n.UserId, n.NotificationId });
//                        ^            ^
//                      first        second

换句话说,你做得很正确,不需要采取进一步的行动。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47834039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档