实体框架虚拟集合导致意外的表

时间:2015-09-27 21:05:24

标签: c# entity-framework ef-code-first entity-framework-core

我有一个EF opbject

public class Country
{
    [Key]
    public string CountryCode { get; set; }
    public string CountryName { get; set; }
}

以及通用项目:

public class Item
{
    public int ItemID { get; set; }
    public virtual ICollection<Country> AvailableIn { get; set; }
}

生成的Country表包含字段:

CountryCode
CountryName 
ItemItemID

如何告诉EF我希望将关系构建为ItemAvailableCountry相关表而不是修改Country表?

编辑

根据下面的评论,如果我只添加问题列

,我已经包含了相关的迁移代码
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.AddColumn<int>(
            name: "ItemItemID",
            table: "Country",
            isNullable: true);
        migrationBuilder.AddForeignKey(
            name: "FK_Country_Item_ItemItemID",
            table: "Country",
            column: "ItemItemID",
            principalTable: "Item",
            principalColumn: "ItemID");
    }

因为它可能是相关的 - 这是在EF7中的工作

1 个答案:

答案 0 :(得分:1)

如果您想要多对多的关系,请在国家/地区类别上放置ICollection of Item,EF将生成您想要的表格。