在seed
方法中的一个IDatabaseInitializer
中,给定我的dbcontext
,我将初始数据插入到DB中。除其他外,还有一些用户需要初始化。但是我将Microsoft.aspnet.identity.EntityFramework.UserStore
与Microsoft.aspnet.identity.UserManager
一起使用,DBUPDateConcurrencyException
,后者只有异步方法,如下所示:
private static void CreateUser(DbContext context, string[] roles, string userName, string userEmail) {
// given context is
var user = new ApplicationUser { /* ... fields init */ };
var userStoreAdapter = new ApplicationUserRepository(context);
var manager = new UserManager<ApplicationUser>(userStoreAdapter);
// pass the creation to manager by calling it synchronously. See UserManagerExtensions
manager.Create(user, Domain.Constants.DefaultPassword);
manager.AddToRoles(user.Id, roles);
context.SaveChanges(); // throws DbUpdateConcurrencyException. See another approach below.
}
所以问题是,是否有一种方法可以将UserManager
与dbcontext
一起使用而不会出现并发问题?
我尝试了从乐观并发模式中获得的以下方法,但它不会创建用户:
bool isSaved = true;
do
{
try
{
context.SaveChanges();
isSaved = true;
}
catch (DbUpdateConcurrencyException ex)
{
foreach (var entry in ex.Entries)
{
entry.Reload();
}
isSaved = false;
}
} while (!isSaved);
var result = Task.Run(() => {
/*whatever you want here*/
}).Result;
// Do whatever u want with the result after
我正在为一家德国公司评估Dart,将各种Java程序移植到Dart,并对结果进行比较和分析。在浏览器中,飞镖轻松获胜。对于服务器来说,软件性能似乎是一个严重的问题(请看我的这个问题),但这基本上得到了缓解。 现在我正在移植一些“简单”的命令行工具,我没想到会有任何严重的问题,但至少有一个问题。一些工具确实会发出HTTP请求来收集一些数据,独立的Dart虚拟机只以异步方式支持它们。纵观所有我能找到的
volley库如何在Android中同步工作?我想当volley从服务器得到响应的时候,程序的执行停止并等待volley的结果。
我的项目即将启动。在发布之后,我有一个很大的计划,数据库结构将发生变化——现有表和新表中的新列,以及与现有模型和新模型的新关联。 我还没有接触到序列化中的迁移,因为我只有测试数据,我不介意每次数据库更改时都删除这些数据。 为此,目前,如果我更改了模型定义,我会在我的应用程序启动时运行。这将删除所有表并从头开始创建它们。我可以省略选项,让它只创建新表。但如果现有的改变了,这是没有用的。 那么,一旦我
我有多个线程,它们都从一个对象运行。我希望“主线程”单独运行,直到某一点,然后它等待,所有其他线程一起运行,然后主线程唤醒,等等。。。。。我无法同步线程。我要么得到一个非法的监视器状态异常,要么它卡在一个“等待”循环中,该循环应该接收一个永远不会到达的“通知”。 更具体地说,我有一个带有数组的对象。阵列中的每个单元都有一个线程,该线程检查相邻单元,然后使用该信息更改其单元。为了有序地进行更改,我希
在过去,我们被明确警告调用是异步的,并且的值在回调或下一个方法之前无效。 使用useState,在显式更新状态后如何获取状态值? 钩子是如何工作的?据我所知,的setter函数不接受回调,例如。 不会导致正在运行回调。 我在旧世界的另一个解决方法是在类上挂起一个实例变量,但这在这里不起作用,因为没有可重用的函数实例(在严格模式下没有)。
RestTemplate文档中的Spring注意: 注意:从5.0开始,这个类处于维护模式,只接受微小的更改请求和bug。请考虑使用org.springframework.web.reactive.client.WebClient,它具有更现代的API,支持同步、异步和流场景。 https://docs.spring.io/spring-framework/docs/current/javadoc