小编Rap*_*lva的帖子

BeginTransaction() 与 BeginTransactionAsync() 对性能有何影响

我有一个原子事务的实现,其中在异步 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();
Run Code Online (Sandbox Code Playgroud)

由于原子性对我来说是一个优先事项,我可以这样做。

但是,我应该异步执行吗?BeginTransaction() 与 BeginTransactionAsync() 对性能有何影响

c# asp.net-web-api2 entity-framework-core asp.net-core

3
推荐指数
1
解决办法
1017
查看次数

在 C# 中使用 Graph API 读取 b2c 扩展属性

我们使用 C# 中的 Graph API 从 AD 读取有关 B2C 中用户设置的数据。

我们在 b2c 环境中设置了许多扩展属性,并且希望能够在 C# 应用程序中为用户读取这些属性的值。

我们可以使用以下命令成功请求获取用户的详细信息:

graphServiceClient.Users[userId].Request().Select("id,displayName").GetAsync();
Run Code Online (Sandbox Code Playgroud)

它返回指定属性的详细信息。

但是,我们找不到通过此请求取回扩展属性值的选项。我们已使用存储属性的应用程序的 guid 包含了属性的名称,但不返回属性。

我们还尝试了以下请求,该请求返回“未找到具有给定 id 的扩展”的响应:

var extensionDetails = graphServiceClient.Users[userId].Extensions["extension_{guidWithDashesRemoved}_{attributeName}"].Request().GetAsync();
Run Code Online (Sandbox Code Playgroud)

我们可以通过以下 get 请求在 Postman 中成功完成此操作:

https://graph.microsoft.com/v1.0/users?$select=id,displayName,givenName,postalCode,extension_{guidWithDashesRemoved}_{attributeName}
Run Code Online (Sandbox Code Playgroud)

有人能够取回扩展属性值吗?

c# azure-ad-b2c microsoft-graph-api

3
推荐指数
1
解决办法
1612
查看次数