从嵌套列表向实体框架上下文添加列表项

时间:2014-07-03 04:08:29

标签: c# entity-framework list reflection collections

我正在尝试使用Entity Framework将一些记录插入到数据库中。我正在努力的是访问内部列表的属性。

内部列表具有以下结构:

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循环,然后使用另一个循环遍历内部列表。然而,这产生了关于不包含&#39; GetEnumerator&#39;的公共定义的类的错误。

内部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();
        }
    }

}

我现在收到错误:&#39;最好的重载匹配有一些无效的参数。&#39;并且&#39;无法从对象转换为InnerList类。&#39;

修改

我应该补充说,这是使用JSON.net转换为一个列表,它使用JSON字符串并通过innerList类将其转换为列表,该类存在为Entity Framework Model类。

任何帮助都会很棒。欢呼声。

1 个答案:

答案 0 :(得分:0)

您的Innerlist类不是列表。它是一个包含列表的类。 使您的Innerlist对象实现IEnumerable