【问题标题】:Alien columns after Entity framework code first Migration实体框架代码第一次迁移后的外星列
【发布时间】:2016-03-05 13:53:48
【问题描述】:
    [Table("IpForeclosureActionHeaders")]
    public class ForeclosureActionHeader : FullAuditedEntity
    {
        // removed other properties for clarity

        [ForeignKey("BankId")]
        public virtual Bank Bank { get; set; }
        public virtual int BankId { get; set; }

        [ForeignKey("AssignedToBankId")]
        public virtual Bank AssignedToBank { get; set; }
        public virtual int AssignedToBankId { get; set; }

    }

    [Table("IpBanks")]
    public class Bank : FullAuditedEntity
    {
         // removed other properties for clarity

        public virtual ICollection<ForeclosureActionHeader> ForeclosureActionHeaders { get; set; }

        public virtual ICollection<ForeclosureActionHeader> AssignedToBankForeclosureActionHeaders { get; set; }
    }

迁移文件:

public override void Up()
        {
            CreateTable(
                "dbo.IpForeclosureActionHeaders",
                c => new
                {
                    Id = c.Int(nullable: false, identity: true),

                    BankId = c.Int(nullable: false),
                    AssignedToBankId = c.Int(nullable: false),
                    Bank_Id = c.Int(),
                    Bank_Id1 = c.Int(),
                },
                annotations: new Dictionary<string, object>
                {
                    {
                        "DynamicFilter_ForeclosureActionHeader_SoftDelete",
                        "EntityFramework.DynamicFilters.DynamicFilterDefinition"
                    },
                })
                .PrimaryKey(t => t.Id)
                .ForeignKey("dbo.IpBanks", t => t.Bank_Id)
                 .ForeignKey("dbo.IpBanks", t => t.Bank_Id1)
                .ForeignKey("dbo.IpBanks", t => t.AssignedToBankId, cascadeDelete: false)
                .ForeignKey("dbo.IpBanks", t => t.BankId, cascadeDelete: false)
                 .Index(t => t.BankId)
                .Index(t => t.AssignedToBankId)
             .Index(t => t.Bank_Id)
             .Index(t => t.Bank_Id1)

        }

        public override void Down()
        {
            DropForeignKey("dbo.IpForeclosureActionHeaders", "BankId", "dbo.IpBanks");
            DropForeignKey("dbo.IpForeclosureActionHeaders", "AssignedToBankId", "dbo.IpBanks");
            DropForeignKey("dbo.IpForeclosureActionHeaders", "Bank_Id1", "dbo.IpBanks");
            DropForeignKey("dbo.IpForeclosureActionHeaders", "Bank_Id", "dbo.IpBanks");
            DropIndex("dbo.IpForeclosureActionHeaders", new[] { "Bank_Id1" });
            DropIndex("dbo.IpForeclosureActionHeaders", new[] { "Bank_Id" });
            DropIndex("dbo.IpForeclosureActionHeaders", new[] { "AssignedToBankId" });
            DropIndex("dbo.IpForeclosureActionHeaders", new[] { "BankId" });
            DropTable("dbo.IpForeclosureActionHeaders",
                removedAnnotations: new Dictionary<string, object>
                {
                    { "DynamicFilter_ForeclosureActionHeader_SoftDelete", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
                });
        }
    }

问:你能告诉我为什么它会在IpForeclosureActionHeaders 表上创建Bank_IdBank_Id1 列吗?因为我将这些列命名为BankIdAssignedToBankId。我怎样才能避免它?提前致谢。

【问题讨论】:

    标签: c# entity-framework code-first entity-framework-migrations


    【解决方案1】:

    你可以阅读这个帖子——通常情况相同:Why is EF code-first generating an extraneous foreign key column?

    InverseProperty 将帮助您避免这种不必要的引用。

    解决方案:

        [ForeignKey("BankId")]
        [InverseProperty("ForeclosureActionHeaders")]
        public virtual Bank Bank { get; set; }
        public virtual int BankId { get; set; }
    
        [ForeignKey("AssignedToBankId")]
        [InverseProperty("AssignedToBankForeclosureActionHeaders")]
        public virtual Bank AssignedToBank { get; set; }
        public virtual int AssignedToBankId { get; set; }
    

    【讨论】:

      猜你喜欢
      • 2018-01-29
      • 2012-11-29
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 2013-12-29
      相关资源
      最近更新 更多