将字符串转换为List,然后使用Entity Framework插入到Database中

时间:2014-03-27 04:36:54

标签: c# entity-framework collections

我正在将字符串转换为列表,然后尝试使用实体框架将其插入到数据库中。我遇到的问题是我不知道如何将更改保存到数据库。

这是我尝试使用的代码,也是字符串转换为列表的地方:

if (intCounter == 0)
{
    return JsonConvert.DeserializeObject<List<foo>>(jsonString).Cast<T>().ToList();
}

然后在下面的单独课程中。

ConvertJson.Convert<CouncilEvent>(strResponseJSONContent, intCounter);

我尝试用于列表的实体框架模型。

namespace foo.Models
{
    public partial class foo
    {
        public foo()
        {
            this.EventDates = new List<EventDate>();
        }

        public System.Guid foo_PK { get; set; }
        public string EntityID { get; set; }
        public string Address1 { get; set; }
        public string Address2 { get; set; }
        public string Address3 { get; set; }
        public bool Adult { get; set; }
    }
}

类foo包含与字符串中的属性匹配的属性。

我正在尝试插入数据库中。 foo也是我的Entity Framework模型的一部分。

我以前从未在这种情况下使用过列表,我认为这只是使用db.SaveChanges()的问题,但这似乎不起作用。我会在哪里放置必要的代码行,例如使用(db = new contextFoo)db.SaveChanges()。我还需要添加项目吗?我没有,因为我以为我已经将它们添加到课堂中,因此不需要手动执行此操作?

2 个答案:

答案 0 :(得分:0)

db.SaveChanges()只会更新&#39;你的数据库改变了什么。因此,您需要向数据库添加内容,然后调用SaveChanges()使其生效。

答案 1 :(得分:0)

您可以循环列表以将对象添加到上下文,然后调用SaveChanges() ...

var councilEvents = ConvertJson.Convert<CouncilEvent>(strResponseJSONContent, intCounter);

using (var db = new contextFoo()) 
{
    foreach (var councilEvent in councilEvents)
    {
        db.CouncilEvents.Add(councilEvent);
    }
    db.SaveChanges();
}