首页 > 解决方案 > CSV 到使用实体框架的级联模型

问题描述

我需要使用实体框架将自动 CSV 文件转换为多个数据库列。它的设置使每个模型都有孩子。所以它Animal包含一个列表,Types其中包含一个列表Classification。这样Classification子是孙子Animal

现在我有这三个模型需要用 CSV 文件填充。该文件按以下方式格式化:

测试数据

然后将它们从 API 拉到 Windows 桌面应用程序中作为级联下拉框。到目前为止,我已经尝试将它们添加到单独的列表中,但是在使用实体框架时没有上传。当前的方法是尝试将列表向下级联但是我得到一个错误

序列不包含事件

这是我遇到问题的代码部分(由于工作规则必须编辑,因此类不同):

var Animal = new List<AnimalModel>();

var lines = await ReadStreamAsync(new StreamReader(uploadModel.File.OpenReadStream()));

foreach(string l in lines)
{
   Animal.Add(new AnimalModel
   {
      AnimalName = cells[0],
   });

   Animal.Last().Type.Add(new TypeModel
      {
         TypeName = cells[1],
      });

   Animal.Last().Type.Last().Classification.Add(new ClassificationModel
   {
      Type = Type.Last(),
      ClassificationName = cells[2],
      Color = cells[3],
      Age = cells[4]
   });
}

标签: c#asp.netentity-framework-core

解决方案


我解决了这个问题。我需要在代码中初始化列表,因为我没有在模型中这样做。以下工作:

var Animal = new List<AnimalModel>();

var lines = await ReadStreamAsync(new StreamReader(uploadModel.File.OpenReadStream()));

foreach(string l in lines)
{
   Animal.Add(new AnimalModel
   {
      AnimalName = cells[0],
      Type = new List<TypeModel>()
      {
          new TypeModel()
          {
              TypeName = cells[1]
          }
      }
   });

等孙子。我将不得不清理它,因为它很乱,但现在可以了。


推荐阅读