- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个原子事务的实现,其中在异步 HTTP POST 方法中更新了许多上下文。
在事务实现之前,我正在异步操作我的上下文
例如( await _context.Foo.AddAsync(trade);
await _context.SaveChangesAsync();
)
在理解了转换的必要性并看到了许多同步示例之后,我决定同步实现它们:
using (var transaction = _context.Database.BeginTransaction())
{
//_context.Database.Log = Console.WriteLine();
try
{
_context.Foo.Add(foo);
_context.SaveChanges();
_context.TradeItems.AddRange(new List<Bar>{});
_context.SaveChanges();
transaction.Commit();
由于原子性对我来说是一个优先事项,我可以这样做。
最佳答案
引入异步函数版本以重用“等待”操作完成的线程。如果您的应用程序有很多并发请求 - 异步调用是一个好处。
如果您真的关心性能和服务器资源,请重写您的代码以使用异步版本。并且不要打电话SaveChanges
每次操作后。
using (var transaction = await _context.Database.BeginTransactionAsync())
{
try
{
_context.Foo.Add(foo);
_context.TradeItems.AddRange(new List<Bar>{});
await _context.SaveChangesAsync();
await transaction.CommitAsync();
}
AddAsync
只有在需要数据库请求的实体中有特殊值生成时才需要。
关于c# - BeginTransaction() 与 BeginTransactionAsync() 对性能有何影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66107820/
当您只打算执行一个查询而不删除或更新数据时,是否真的有必要启动事务? 我目前正在使用带有 C3p0 的 Hibernate 4.1.9 示例, session session = hibernateu
以下 BeginTransaction 方法有什么区别: SqlConnection.BeginTransaction 方法 DbConnection.BeginTransaction 方法 DbCo
考虑以下: /** (Cas_Template_Tree::DeleteNode) * Deletes the given node from the tree, and all of it's c
我将使用SQLite help page中有关外键约束的示例: 让我们在SQLite中构建2个表: CREATE TABLE artist( artistid INTEGER PRIMARY
当使用最新版本的 System.Data.SQLite nuget 包创建一个简单的 SQLite 事务时,我注意到 SQLiteConnection.BeginTransaction() 方法的智能
我在多线程 Windows 桌面程序中使用 SQLite (System.Data.SQLite.dll)。我使用这段代码: using (var cn = new SQLiteConnection(
我有以下代码: $db->beginTransaction(); $achievement_name = $db->prepare("SELECT `achievement_name` FROM `a
在EF6、MVC、MySQL场景下,使用EF TransactionScope和DBContext.BeginTransaction有什么区别? TransactionScope 中没有显式回滚。 应
我目前正在重构我的代码并收到以下错误: Uncaught PDOException: There is no active transaction in... class Dbh { pri
我正在尝试提交到我的数据库,但在我尝试执行查询时收到一个异常,指出该数据库未打开。谁能解释我在这里做错了什么? GetConnectionString(DbMap) 肯定会返回正确的字符串,因为我在执
当两个不同的客户端调用具有 pdo::beginTransaction 的同一个 php 函数时会发生什么? 其中一个是否失败,或者两个 php 实例是否可以执行 beginTranscation 提
done = $connection; } public function createAction() { //create a new item
我有两个 fragment 并将它们设置如下 fram1 = new FragMent1(); fragMentTra.addToBackStack(null); fragMentTra = getF
我想把json解析出来的数据批量插入到db中。我使用下面的方法插入批处理。问题是 mDbWritable.beginTransaction();执行时间太长。通常像6秒!我不知道问题在哪里。一些想法是
我在尝试从第一个 fragment 启动 fragment 时遇到此错误: java.lang.NullPointerException: Attempt to invoke virtual meth
我的 php error_log 中出现以下错误 PHP Warning: Error while sending QUERY packet. PID=29770 in /home/test/test
我有一个原子事务的实现,其中在异步 HTTP POST 方法中更新了许多上下文。 在事务实现之前,我正在异步操作我的上下文 例如( await _context.Foo.AddAsync(trade)
好的,抱歉,主题名称太长了... 如果我执行以下操作: using (var transaction = session.BeginTransaction()) { // do somethi
我有一个简单的 Java Web 应用程序,它从数据库接收一些信息并在 Web 浏览器中显示该信息。 Hibernate 用于与 servlet 和 jsp 文件中的数据库进行交互。一切都如我所愿,但
我使用 FragmentPagerAdapter 在我的 ViewPgaer 中有 4 个 fragment 。我尝试在持续延迟后添加每个 fragment ,以便在切换底部栏选项卡时获得无抖动的动画
我是一名优秀的程序员,十分优秀!