控制台应用 实体框架 db.savechanges不保存

本文关键字:savechanges 保存 db 框架 应用 实体 控制台 | 更新日期: 2023-09-27 18:36:40

我一直盯着这个,直到我看不清。 我有一个控制台应用程序,用于在将其转换为服务之前测试逻辑。 从 Web 应用触发时,相同的代码工作正常 学生对象填充良好,它不会引发任何错误,但当它永远不会保存到数据库时。 关于我到底错过了什么的任何见解?

我的应用程序.config 文件具有连接字符串

<connectionStrings>
  <add name="DatabaseContext" connectionString="Data Source=|DataDirectory|Development.sdf" providerName="System.Data.SqlServerCe.4.0" />
  <add name="DevelopmentEntities" connectionString="metadata=res://*/EntityModel.csdl|res://*/EntityModel.ssdl|res://*/EntityModel.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;Data Source=|DataDirectory|'Development.sdf&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
foreach (DataRow dr in dt.Rows)
{
    //fill student object and add to list
    Student s = new Student();
    s.SID = dr[0].ToString();
    s.FirstName = dr[1].ToString();
    s.LastName = dr[2].ToString();
    if (sctType == "TRAD")
    { s.Type = Convert.ToInt32(UniversityGateway.Data.Models.StudentType.Traditional); }
    else
    { s.Type = Convert.ToInt32(UniversityGateway.Data.Models.StudentType.AGS); }
    s.Email = dr[5].ToString();
    s.Address = new Address
    {
         Street = dr[6].ToString(),
        City = dr[9].ToString(),
        State = dr[10].ToString(),
        Zip = dr[11].ToString(),
    };
    s.UserActive = "Y";
    s.Status = Convert.ToInt32(UniversityGateway.Data.Models.StudentStatus.Pending);
    s.Password = "kHPrSps3JnTkmky7PakBZg==Wdc9Qgcz39p+s6+fqk/nUw==";
    students.Add(s);
    using (var db = new UniversityGateway.Data.DatabaseContext())
    {
        db.Students.Add(s);
        db.SaveChanges();
    }
}

控制台应用 实体框架 db.savechanges不保存

原来它正在保存对象。 只是到与连接字符串中指定的数据库不同的数据库。 关于SO的另一个问题,到底如何解决这个问题。