[英]Entity Framework - Link Table Name Issue
我有一个名为“ Articles”的表,然后有一个名为“ RelatedArticles”的链接表。
RelatedArticles表仅将文章映射到另一文章。 实体框架正在查找表“ ArticleArticles”。 可以在告诉实体框架此链接表的实际名称的OnModelCreating方法中放什么?
Table RelatedArticles {
int articleId
int relatedArticleId
}
没有“ RelatedArticles”类。 类Article中只有List属性:
public class Article
{
public Article()
{
Links = new HashSet<Link>();
RelatedArticles = new HashSet<Article>();
}
public int Id { get; set; }
public string Title { get; set; }
public string Body { get; set; }
public System.DateTime Created { get; set; }
public virtual ICollection<Link> Links { get; set; }
public virtual ICollection<Article> RelatedArticles { get; set; }
}
您可以重写OnModelCreating
以指定表和列名称:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Article>()
.HasMany(a => a.RelatedArticles)
.WithMany()
.Map(t => t.MapLeftKey("articleId")
.MapRightKey("relatedArticleId")
.ToTable("RelatedArticles"));
}
如果是类,则可以使用[Table(Name = "RelatedArticles"]
属性,请参阅MSDN上有关TableAttribute的文档 。
您已经提到您没有,所以我认为您想要这样做:
modelBuilder
.Entity<Article>
.HasMany(a => a.RelatedArticles)
.WithMany()
.Map(a => a.ToTable("RelatedArticles");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.