【问题标题】:Can't save list into Database using Entity Framework code first无法先使用实体​​框架代码将列表保存到数据库中
【发布时间】:2017-02-09 01:03:41
【问题描述】:

这是我在将列表保存到数据库时遇到的问题的一个简单示例。

    [TestMethod]
    public void InsertResultsIntoDatabase()
    {


        using (var context = new ResultContext())
        {
            DatabaseTestResults dbTestResults = new DatabaseTestResults();

            dbTestResults.ZipFileName = "report-nominal - Copy.zip";

            dbTestResults.testList.Add(1);
            context.DbTestResults.Add(dbTestResults);
            context.SaveChanges();


        }

此时,调试器将显示上下文正确包含testList 和zipFileName。

        using (var context = new ResultContext())
        { 

            var query = context.DbTestResults.Find("report-nominal -            
                         Copy.zip");
         }

当试图从数据库中获取信息时,它只保存了zipFileName,并且列表是空的。 如何将列表保存到数据库中?

【问题讨论】:

  • ZipFileName 是 DatabaseTestResults 的主键吗? Find 需要一个主键值。

标签: c# ef-code-first


【解决方案1】:

尝试在SaveChanges() 之前添加context.Entry(dbTestResults).State = EntityState.Added 像这样:

using (var context = new ResultContext())
{
     DatabaseTestResults dbTestResults = new DatabaseTestResults();

     dbTestResults.ZipFileName = "report-nominal - Copy.zip";

     context.DbTestResults.Add(dbTestResults);
     context.Entry(dbTestResults).State = EntityState.Added
     context.SaveChanges();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    相关资源
    最近更新 更多