小编Tub*_*ubs的帖子

添加迁移,种子抛出"没有提供值"的异常

我正在尝试创建一个程序包,该程序包将使用JSON文件中的数据来帮助种子数据库,这些数据可以手动创建,也可以从旧数据库中提取.目前,我已经创建了一个泛型类SeedCreator<T>,它从给定文件中检索JSON(实体的名称加上.json)并将其反序列化为给定类型的对象.这部分工作正常.

为了使这个过程尽可能动态,我通过使用命名空间标识所有类来对项目中的实体进行反射Entities.有了这个,我循环检索List并检查JSON文件是否存在.如果是的话,我将路径和泛型类型传递给类SeedsCreator.在运行时进行调试时Add-Migration,数据会按照我对JSON文件的预期返回,但在modelBuilder返回变量后我得到错误The seed entity for entity type 'Table1' cannot be added because there was no value provided for the required property 'Id'.

如果我手动输入以下它可以正常工作.

modelBuilder.Entity(typeof(Table1)).HasData(data);
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.特别是如果我是盲人并做了一些非常简单和愚蠢的事情.

public class Seeds
{
    public ModelBuilder CreateSeeds(ModelBuilder modelBuilder)
    {
        var entities = (from t in Assembly.GetExecutingAssembly().GetTypes()
                       where t.Namespace != null && (t.IsClass && t.Namespace.Contains("Entities"))
                       select t).ToList();

        foreach (var type in entities)
        {
            if (File.Exists("./Seeds/" + type.Name + ".json"))
            {
                Type[] …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core .net-core asp.net-core-2.1 ef-core-2.1

1
推荐指数
1
解决办法
430
查看次数