[英]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.