【发布时间】:2014-07-03 04:08:29
【问题描述】:
我正在尝试使用实体框架将一些记录插入数据库。我正在努力的是访问内部列表的属性。
内部列表具有以下结构:
public class Innerlist { public string item1 { get; set; } public List<string> item2 { get; set; } public List<object> item3 { get; set; } public int item4 {get; set;} etc... }
然后将上面的列表包装在另一个列表中。我的问题是如何访问属性 Item1、Item2 和 Item3?
我的循环代码结构如下:
using(var context = new fooContext())
{
foreach (var innerList in Outerlist)
{
try
{
context.fooEntity.Add(innerList);
}
catch (Exception ex)
{
Console.WriteLine("\n\n" + ex);
Console.ReadLine();
}
}
}
我尝试使用一个循环遍历外部列表的 foreach 循环,然后使用另一个循环遍历内部列表。然而,这会产生一个关于类不包含“GetEnumerator”公共定义的错误。
内部foreach循环的结构如下:
foreach (var innerList in outerList)
{
foreach(var item in innerList)
{
try
{
context.fooEntity.Add(item);
}
catch (Exception ex)
{
Console.WriteLine("\n\n" + ex);
Console.ReadLine();
}
}
}
我现在收到错误消息:“最佳重载匹配有一些无效参数。”并且“无法从对象转换为 InnerList 类。”
编辑
我应该补充一点,这是使用 JSON.net 将其转换为列表,该列表采用 JSON 字符串并通过 innerList 类将其转换为列表,该类作为实体框架模型类存在。
任何帮助都会很棒。干杯。
【问题讨论】:
-
发布你的 looping 代码 sn-p 以便我们看到你做错了什么以及如何解决它..
-
@har07 我已经更新了我的问题。
-
我的意思是内循环,产生错误的那个(你的外循环工作正常,不是吗?)...简单的
foreach(var item in innerList.item2){}怎么样,不是吗? -
@har07 感谢您的帮助。我又更新了。
-
这个问题对我来说不是很清楚。你在这里的目标是什么?如果您想将
InnerList类添加到数据上下文中,那么我认为您不需要内部循环。如果您想访问InnerList的属性 用于任何其他目的,您可以按照我之前评论中的建议进行操作(展示了如何访问item2属性并循环访问它的列表成员的示例)
标签: c# entity-framework list reflection collections