【发布时间】:2015-06-20 02:23:59
【问题描述】:
我有 3 个实体:
public class AspNetUser
{
public string Id {get; set;}
}
public class Event
{
public int Id {get; set;}
}
public class UserEvent
{
[Column(Order=0), Key, ForeignKey("AspNetUsers")]
public string UserId { get; set; }
[Column(Order=1), Key, ForeignKey("Events")]
public int EventId { get; set; }
public DateTime EnrolTime { get; set; }
public virtual AspNetUser User { get; set; }
public virtual Event Event { get; set; }
}
如您所见,UserEvent 只是一个关系表,其中包含两个表中的 UserId 和 EventId。
我的问题是:
- 注释是否足以告诉 EF 创建 2 个外键?或者我还必须使用 Fluent API 在 DbContext 类的 OnModelCreating() 方法 中执行此操作?或者我必须创建一个配置类才能这样做? 我在这篇文章中看到了一些东西(这让我很困惑):
Entity Framework Multiple Column as Primary Key by Fluent Api
- 外键(“X”) 我猜 X 应该是表名而不是实体名,对吧? 例如。 X 应该是 AspNetUsers(在数据库中),而不是作为实体名称的 AspNetUser。
谢谢。
【问题讨论】:
-
注解就够了。您是在创建一对一关系还是一对多关系?你在使用 EF 6 吗?
-
嗨@JasonlPrice 我正在使用EF 6。用户到事件:多对多。这就是我需要创建 UserEvent 实体的原因。
标签: c# entity-framework