C# EF代码第一次迁移modelBuilder

C# EF代码第一次迁移modelBuilder,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我的C#代码中有两个实体: 公共类货币 { 公共int CurrencyID{get;set;} 公共字符串CurrencyName{get;set;} 公共虚拟ICollection CurrentCurrencyRates{get;set;} 公共虚拟ICollection TargetCurrencyRates{get;set;} } 公共类货币汇率 { 公共int-RateID{get;set;} public DateTime RateDate{get;set;} 公共

我的C#代码中有两个实体:

公共类货币
{        
公共int CurrencyID{get;set;}
公共字符串CurrencyName{get;set;}
公共虚拟ICollection CurrentCurrencyRates{get;set;}
公共虚拟ICollection TargetCurrencyRates{get;set;}
}
公共类货币汇率
{
公共int-RateID{get;set;}
public DateTime RateDate{get;set;}
公共十进制比率值{get;set;}
public int CurrentCurrencyID{get;set;}
public int TargetCurrencyID{get;set;}
公共虚拟货币CurrentCurrency{get;set;}
公共虚拟货币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; }
public EconomicAppContext()
:base(“EconomicApp”)
{ }
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity().Property(v=>v.RateValue).HasColumnType(“Money”);
modelBuilder.Entity().HasKey(cr=>cr.RateID);
modelBuilder.Entity().HasKey(c=>c.CurrencyID);
modelBuilder.Entity()。
有很多(c=>c.CurrentCurrencyRates)。
WithRequired(c=>c.CurrentCurrency)。
HasForeignKey(c=>c.RateID);
modelBuilder.Entity()。
有很多(c=>c.TargetCurrencyRates)。
WithRequired(c=>c.TargetCurrency)。
HasForeignKey(c=>c.RateID);
基于模型创建(modelBuilder);
}
公共DbSet CurrencyRates{get;set;}
公共数据库集货币{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);
modelBuilder.Entity()。
HasRequired(c=>c.CurrentCurrency)。
有很多(c=>c.CurrentCurrencyRates)。
HasForeignKey(c=>c.CurrentCurrencyID);
modelBuilder.Entity()。
HasRequired(c=>c.TargetCurrency)。
有很多(c=>c.TargetCurrencyRates)。
HasForeignKey(c=>c.TargetCurrencyID);

Thaks!我明白了,我知道@欢迎你。不确定您理解了什么,但这是因为您试图在一个外键上创建两个关系。:)对我明白了。现在我有两张桌子
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);