Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF ComplexType DbModelBuilder字典示例_C#_Entity Framework - Fatal编程技术网

C# EF ComplexType DbModelBuilder字典示例

C# 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; }

我正在使用EF
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进行序列化和反序列化,并在需要时创建一个表。看起来类对象是进行序列化的最佳位置,如上所述。