EF context.SaveChanges()特点

本文介绍了 EF (Entity Framework) 中 Context.SaveChanges 方法的主要特性:支持一次连接保存多条数据的工作单元模式,并通过事务确保数据的一致性;此外还介绍了延时加载机制的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EF context.SaveChanges()特点

1 一次连接保存多条数据(工作单元模式);

2 内部通过事务来执行,如果一条数据保存失败,执行回滚操作;

3 延时加载

var userList=from u in context.UserInfo select u;

foreach(var u in userList)//执行in时候才会加载

{

      Response.Write(u.Name);

}

转载于:https://www.cnblogs.com/dxmfans/p/9434655.html

09:45:58:967 引发的异常:“System.Data.Entity.Infrastructure.DbUpdateException”(位于 EntityFramework.dll 中) 09:45:58:967 System.Data.Entity.Infrastructure.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.Entity.Core.UpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.SQLite.SQLiteException: constraint failed 09:45:58:967 NOT NULL constraint failed: r2TabHistoryData.Batch 09:45:58:967 在 System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt) 09:45:58:967 在 System.Data.SQLite.SQLiteDataReader.NextResult() 09:45:58:967 在 System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave) 09:45:58:967 在 System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior) 09:45:58:967 在 System.Data.SQLite.SQLiteCommand.ExecuteDbDataReader(CommandBehavior behavior) 09:45:58:967 在 System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) 09:45:58:967 在 System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.<>c.<Reader>b__6_0(DbCommand t, DbCommandInterceptionContext`1 c) 09:45:58:967 在 System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed) 09:45:58:967 在 System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext) 09:45:58:967 在 System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(CommandBehavior behavior) 09:45:58:967 在 System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) 09:45:58:967 在 System.Data.Entity.Core.Mapping.Update.Internal.DynamicUpdateCommand.Execute(Dictionary`2 identifierValues, List`1 generatedValues) 09:45:58:967 在 System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update() 09:45:58:967 --- 内部异常堆栈跟踪的结尾 --- 09:45:58:967 在 System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update() 09:45:58:967 在 System.Data.Entity.Core.EntityClient.Internal.EntityAdapter.<>c.<Update>b__21_0(UpdateTranslator ut) 09:45:58:967 在 System.Data.Entity.Core.EntityClient.Internal.EntityAdapter.Update[T](T noChangesResult, Func`2 updateFunction) 09:45:58:967 在 System.Data.Entity.Core.EntityClient.Internal.EntityAdapter.Update() 09:45:58:967 在 System.Data.Entity.Core.Objects.ObjectContext.<SaveChangesToStore>b__153_0() 09:45:58:967 在 System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) 09:45:58:967 在 System.Data.Entity.Core.Objects.ObjectContext.SaveChangesToStore(SaveOptions options, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction) 09:45:58:967 在 System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass148_0.<SaveChangesInternal>b__0() 09:45:58:967 在 System.Data.Entity.Infrastructure.DefaultExecutionStrategy.Execute[TResult](Func`1 operation) 09:45:58:967 在 System.Data.Entity.Core.Objects.ObjectContext.SaveChangesInternal(SaveOptions options, Boolean executeInExistingTransaction) 09:45:58:967 在 System.Data.Entity.Core.Objects.ObjectContext.SaveChanges(SaveOptions options) 09:45:58:967 在 System.Data.Entity.Internal.InternalContext.SaveChanges() 09:45:58:967 --- 内部异常堆栈跟踪的结尾 --- 09:45:58:967 在 System.Data.Entity.Internal.InternalContext.SaveChanges() 09:45:58:967 在 System.Data.Entity.Internal.LazyInternalContext.SaveChanges() 09:45:58:967 在 System.Data.Entity.DbContext.SaveChanges() 09:45:58:967 在 Asd.AgingTestRack.IMP.DB.ASD_AgingRack_db.SaveChanges() 位置 C:\Users\asd\Desktop\调试\Asd.AgingTestRack\Asd.AgingTestRack.IMP.DB\ASD_AgingRack_db.cs:行号 55: Database update error during SaveChanges. 分析错误
最新发布
06-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值