簡體   English   中英

EF代碼優先遷移模型構建器

[英]EF Code First Migration modelBuilder

我的C#代碼中有兩個實體:

  public class Currency
{        
    public int CurrencyID { get; set; }

    public string CurrencyName { get; set; }

    public virtual ICollection<CurrencyRate> CurrentCurrencyRates { get; set; }
    public virtual ICollection<CurrencyRate> TargetCurrencyRates { get; set; }
}

 public class CurrencyRate
    {
        public int RateID { get; set; }
        public DateTime RateDate { get; set; }
        public Decimal RateValue { get; set; }
        public int CurrentCurrencyID { get; set; }
        public int TargetCurrencyID { get; set; }


        public virtual Currency CurrentCurrency { get; set; }
        public virtual Currency TargetCurrency { get; set; }
    }

我有上下文類:

public EconomicAppContext()
            : base("EconomicApp")
        { }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<CurrencyRate>().Property(v => v.RateValue).HasColumnType("Money");
            modelBuilder.Entity<CurrencyRate>().HasKey(cr => cr.RateID);
            modelBuilder.Entity<Currency>().HasKey(c => c.CurrencyID);

            modelBuilder.Entity<Currency>().
                HasMany<CurrencyRate>(c => c.CurrentCurrencyRates).
                WithRequired(c => c.CurrentCurrency).
                HasForeignKey(c => c.RateID);
            modelBuilder.Entity<Currency>().
               HasMany<CurrencyRate>(c => c.TargetCurrencyRates).
               WithRequired(c => c.TargetCurrency).
               HasForeignKey(c => c.RateID);

             base.OnModelCreating(modelBuilder);
        }

        public DbSet<CurrencyRate> CurrencyRates { get; set; }
        public DbSet<Currency> Currencies { get; set; }

我正在嘗試遷移到現有數據庫中。 我想獲取如下所示的架構:

在此處輸入圖片說明

我做錯了什么? 有人可以幫我將表遷移到數據庫嗎?

嘗試如下操作:

modelBuilder.Entity<CurrencyRate>().
                HasRequired<Currency>(c => c.CurrentCurrency).
                WithMany(c => c.CurrentCurrencyRates).
                HasForeignKey(c => c.CurrentCurrencyID);
modelBuilder.Entity<CurrencyRate>().
               HasRequired<Currency>(c => c.TargetCurrency).
               WithMany(c => c.TargetCurrencyRates).
               HasForeignKey(c => c.TargetCurrencyID);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM