迭代列表并添加到db上下文

时间:2014-04-04 04:10:00

标签: c# entity

我正在尝试使用Entity Framework将插入数据添加到数据库中。

public class list1 { public string element1 { get; set; } public string element2 { get; set; } public string element3 { get; set; } public string element4 { get; set; } public string element5 { get; set; } }

上面的列表包含填充的字段,但位于业务层。

public class list2 { public string element1 { get; set; } public string element2 { get; set; } public string element3 { get; set; } public string element4 { get; set; } public string element5 { get; set; } }

以上列表是映射到数据库的实体框架对象如何迭代复制它们之间的数据?

  

var foo = ConvertJson.Convert<" list1">(strResponseJSONContent);使用(var db = new DBContext())
      {           foreach(foo中的var元素)
          {
              db.list2.Add(元件);
          }
      }

我收到此行db.list2.Add(element);的错误,其中包含'最佳重载方法包含一些无效参数'。我不确定为什么会产生这个错误。 我认为使用foreach循环并将它们添加到上下文中会起作用,但它不是。 有什么建议?我需要先将它们映射到类似的东西吗?

2 个答案:

答案 0 :(得分:1)

您必须致电db.SaveChanges()提交更改...

更重要的是,您需要一个扩展DBContext的类来为数据库建模,而不是直接实例化DbContext

同样,Add方法会将Collection的元素添加到使用Add方法的类中。您扩展的DbContext必须有DbSet成员。我建议您尝试像这样的Entity Frameowrk教程: http://www.entityframeworktutorial.net/code-first/simple-code-first-example.aspx

答案 1 :(得分:1)

虽然您已将类型名称指定为list2,但类型不是List,但它是一个类。所以你不会有一个名为Add的方法。您可能需要List<list2>但不确定,因为这取决于您的业务需求。