C# EF ComplexType DbModelBuilder字典示例
我正在使用EFC# EF ComplexType DbModelBuilder字典示例,c#,entity-framework,C#,Entity Framework,我正在使用EFDbSet。现在,我需要一个代码片段,展示如何实现EF6+方法DbContext.OnModelCreating(dbmodelbuildermodelbuilder)来填充代码优先数据库。我找不到任何好的例子 public class FiveMinStockHistory { public int Id { get; set; } public Dictionary<string, string> Meta_Data { get; set; }
DbSet
。现在,我需要一个代码片段,展示如何实现EF6+方法DbContext.OnModelCreating(dbmodelbuildermodelbuilder)来填充代码优先数据库。我找不到任何好的例子
public class FiveMinStockHistory
{
public int Id { get; set; }
public Dictionary<string, string> Meta_Data { get; set; }
public Dictionary<string, TimeSeries> Lhocv { get; set; }
}
public class TimeSeries
{
public decimal Open { get; set; }
public decimal High { get; set; }
public decimal Low { get; set; }
public decimal Close { get; set; }
public double Volume { get; set; }
}
公共类五分钟制历史
{
公共int Id{get;set;}
公共字典元数据{get;set;}
公共字典Lhocv{get;set;}
}
公共类时间序列
{
公共十进制开放{get;set;}
公共十进制高位{get;set;}
公共十进制低位{get;set;}
公共十进制关闭{get;set;}
公共双卷{get;set;}
}
谢谢 您可以通过多种方式为数据库设定种子。通常,您希望它发生在启动时。因此,您创建了一个具有静态初始化方法的DbInitializer.cs类
public static void Initialize(MyDbContext context)
{
context.Database.EnsureCreated();
// Create the objects you want to insert into DbContext.
// Write it to a variable, for example, "var ExampleData".
// Add example data.
context.FiveMinStockHistory.Add(ExampleData)
context.SaveChanges();
}
然后您可以在启动时运行它:
公共void配置(IAApplicationBuilder应用程序,MyDbContext上下文)
{
MyDatabaseInitializer.Initialize(上下文);
}
简单的豌豆。祝你好运 您可以编写一个静态DbInitializer类,并从Startup.cs或Program.cs调用它。用什么填充?有很多例子可以用来创建数据库。如果您找不到任何示例,可能是因为您无法使用
Dictionary
导航属性找到任何代码,这仅仅是因为它们不受支持。我尝试过像这样进行求和:但是让Dbcontext进行序列化和反序列化,并在需要时创建一个表。看起来类对象是进行序列化的最佳位置,如上所述。