【问题标题】:Iterating through a list and adding to db context遍历列表并添加到数据库上下文
【发布时间】:2014-05-16 05:04:47
【问题描述】:

我正在尝试使用实体框架将插入数据添加到数据库中。

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(strResponseJSONContent);使用 (var db = new DBContext())
{ foreach(foo 中的 var 元素)
{
db.list2.Add(元素);
}
}

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

【问题讨论】:

    标签: c# entity


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 对不起,我不是很清楚我已经更新了问题,以尝试更好地传达我的问题。错误不在于SaveChanges 行。
      猜你喜欢
      • 1970-01-01
      • 2018-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多