Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架6不保存更改_C#_Entity Framework 6_Asp.net Mvc 5_Savechanges - Fatal编程技术网

C# 实体框架6不保存更改

C# 实体框架6不保存更改,c#,entity-framework-6,asp.net-mvc-5,savechanges,C#,Entity Framework 6,Asp.net Mvc 5,Savechanges,我有一个MVC5 web应用程序,它将SQLServer2008与EntityFramework6一起用作后端数据库。添加代码时并没有错误,但数据无法存储到数据库中 我的model context.cs看起来像 public partial class checkin_checkoutEntities2 : DbContext { public checkin_checkoutEntities2() : base("name=checki

我有一个MVC5 web应用程序,它将SQLServer2008与EntityFramework6一起用作后端数据库。添加代码时并没有错误,但数据无法存储到数据库中

我的model context.cs看起来像

public partial class checkin_checkoutEntities2 : DbContext
    {
        public checkin_checkoutEntities2()
            : base("name=checkin_checkoutEntities2")
        {
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
    
        public virtual DbSet<Advance_Booking> Advance_Bookings { get; set; }
        public virtual DbSet<employee_reg> employee_reg { get; set; }
        public virtual DbSet<Extend_Stay> Extend_Stay { get; set; }
        public virtual DbSet<Guest_reg> Guest_reg { get; set; }
        public virtual DbSet<RoomBooking> RoomBooking { get; set; }
        public virtual DbSet<Rooms_ms> Rooms_ms { get; set; }
    } 

您能否稍微更改一下代码并尝试以下操作: 而是使用db.Advance_Bookings.Add(ab)您可以使用以下选项:

db.Entry(ab).State = EntityState.Added;
此外,据我所知,只有在断开DbContext连接的情况下才会发生此问题(因为它没有给出任何错误)。 您可以尝试将代码包装在using块中

using (var ab = new DbContext()) 
{
//instantiate the object and saveChanges.
}

根据注释,
db.SaveChanges()已包装在事务中

using (var transaction = new System.Transactions.TransactionScope())
{
    // some changes and db.SaveChanges();
}
它只在没有交易的情况下工作

原因是,需要提交事务才能持久保存保存的更改

using (var transaction = new System.Transactions.TransactionScope())
{
    // some changes and db.SaveChanges();

    transaction.Commit();
}

否则,更改将在事务块末尾被丢弃。

是否尝试调试并查看db.Advance_Bookings.Add(ab);?DataContext是否从数据库加载实体?至少可以说,您的连接字符串似乎可疑。@RomanoZumbé是的,它从数据库加载实体。@MalavSevak,您的用户可以插入到所需的表中吗?也许可以从管理层那里证实这一点Studio@KushalR我想将条目添加到数据库表中。而且肯定没有错误。我尝试过通过设置断点进行调试
using (var transaction = new System.Transactions.TransactionScope())
{
    // some changes and db.SaveChanges();

    transaction.Commit();
}