Entity Framework 代码首先添加不需要的外键列

Entity Framework Code first adds unwanted foreign key column

我在 CategoriesNews 之间存在多对一关系。

我遇到的问题是 EF 不断向我的 table 添加外键列,我不想要!

新闻class

public class News
{
    public News()
    {

    }

    [Key]
    public int NewsID { get; set; }

    public int PublishedByID { get; set; }
    public string PublishedByFullName { get; set; }
    public string PublishedByEmail { get; set; }
    public DateTime DatePublished { get; set; }
    public string Title { get; set; }
    public string PreviewText { get; set; }

    public string BlobName { get; set; }

    public virtual Category Category { get; set; }
}

类别class

public class Category
{
    public Category()
    {
        News = new HashSet<News>();
    }

    [Key]
    public int CategoryID { get; set; }
    public string Name { get; set; }
    public string CategoryTypeName { get; set; }

    public virtual ICollection<News> News { get; set; }
}

数据库

我的问题

如何删除新闻table中的Category_CategoryID

我猜我在 OnModelCreating 方法中遗漏了一些代码。

您需要在 News class 中添加 id 字段以引用类别。

public class News
{
    [Key]
    public int NewsID { get; set; }

    public int CategoryID { get; set; } // added

    public int PublishedByID { get; set; }
    public string PublishedByFullName { get; set; }
    public string PublishedByEmail { get; set; }
    public DateTime DatePublished { get; set; }
    public string Title { get; set; }
    public string PreviewText { get; set; }

    public string BlobName { get; set; }

    public virtual Category Category { get; set; }
}