有人知道如何在Entity Framework 7中创建显式事务吗??? 我找到的所有信息都是指EF的第6版.文档也非常不完整,所以有人能提供一个例子吗?
我有一个dbContext,我必须删除一个实体及其相关的对象,然后再次插入它们,但在同一个事务中,所以我总是有一个行的"版本".
我试图在ASP.NET vNext中创建自定义授权属性,直到我在这篇文章中找到@blowdart的这个优秀答案:
表明授权要求现在是要走的路.答案非常明确,但没有说明如何将参数传递给此要求/策略.
我要做的是移植具有此签名的MVC 5自定义授权属性:
[Autorizacion(Requires = enumPermission.DeleteCustomer)]
Run Code Online (Sandbox Code Playgroud)
因为我使用在后端/前端镜像的一组非常自定义的权限作为枚举/字符串.
由于这些功能仍然没有记录,我觉得有点迷失......有人可以提供指导吗?
提前致谢
我正在寻找一种在ASP.NET 5中编写自定义授权过滤器的方法,因为当前的实现依赖于策略/需求,而这些策略/需求又仅仅依赖于声明的使用,因此在最初的不断变化的身份系统中我真的厌倦了(我已经尝试了所有的味道).
我有一大堆permisions(超过200),我不想编码声明,因为我拥有自己的存储库,并且比检查数百个字符串要快得多的检查方法(这就是声称是到底).
我需要在每个属性中传递一个参数,该参数应该根据我的自定义权限存储库进行检查:
[Authorize(Requires = enumPermission.DeleteCustomer)]
Run Code Online (Sandbox Code Playgroud)
我知道这不是最常见的情况,但我认为这不是一个优势.我试图按照@leastprivilege所描述的方式在他的宏观帖子"ASP.NET 5和MVC 6中的安全状态:授权"中实现它,但我和作者打了同样的墙,甚至打开了关于ASP.NET 5 github repo的一个问题,已经以一种不太明确的方式关闭了:链接
知道怎么做到这一点?也许使用其他类型的过滤器?在那种情况下,怎么样?
我正在尝试将一些代码从EF6转换为EF Core 1 RC1,并且我仍然停留在我需要使用linq在服务器端将日期与当前日期进行比较的时刻.查询的另一部分是获取这些日期的星期几.EF6代码使用完全限定为System.Data.Entity.SqlServer.SqlFunctions的SqlFunctions类,即afaik尚未移植到新版本.什么是推荐的方法或替代方案,使其在EF Core上运行?
原始linq to entities查询是这样的:
var result = db.Logs.Select(log => new {
Date = log.Date,
Rel = System.Data.Entity.SqlServer.SqlFunctions.DateDiff("day", log.Date, System.Data.Entity.SqlServer.SqlFunctions.GetDate()),
Dow = System.Data.Entity.SqlServer.SqlFunctions.DatePart("dw", log.Date) - 1
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试查询一个数据库,其中存储的实体具有不同的属性,并且我想使用不同形状的查询从该信息中检索一些字段(这就是使用无模式数据库的要点),但我对 CosmosDB 没有运气。
由于我没有针对每种查询结果的类(我也不想要),因此我想将它们作为动态列表获取,但我不知道如何检索它们。我试过了:
var queryResultSetIterator = container.GetItemQueryIterator<dynamic>(queryDefinition, null, new QueryRequestOptions() { PartitionKey = new PartitionKey(idParticion), MaxItemCount = -1 });
List<dynamic> results = new List<dynamic>();
await foreach (dynamic item in queryResultSetIterator)
{
results.Add(item);
}
Run Code Online (Sandbox Code Playgroud)
但我得到的项目是 System.Text.Json.JsonDocument 类型,因此它无法按预期工作;
如果我尝试使用 ExpandoObjects,我无法使用新的 System.Text.Json 序列化程序反序列化结果,因为截至目前它不支持反序列化为 ExpandoObjects:
results.Add(JsonSerializer.Deserialize<ExpandoObject>(item));
Run Code Online (Sandbox Code Playgroud)
目前唯一有效的方法是使用旧的 Newtonsoft Json 序列化器,但在我看来,在应用程序中同时存在这两个库似乎有点过分了,所有这些都意味着。
关于如何从 CosmosDB 获取动态投影还有其他想法吗?
提前致谢!
我有一个 MVC 6 应用程序,我需要在该应用程序上连接到不同的数据库(即物理文件,但架构相同),具体取决于访问它的人。也就是说:Web 应用程序的每个客户都将其数据隔离在 SQL 数据库中(在 Azure 上,具有不同的性能、价格水平等),但所有这些数据库将共享相同的关系架构,当然还有实体框架上下文班级。
var cadConexion = @"Server=(localdb)\mssqllocaldb;Database=DBforCustomer1;Trusted_Connection=True;";
services.AddEntityFramework().AddSqlServer().AddDbContext<DAL.ContextoBD>(options => options.UseSqlServer(cadConexion));
Run Code Online (Sandbox Code Playgroud)
问题是,如果我以这种方式注册服务,我已将其绑定到具体客户的具体数据库,并且我不知道我是否可以在中间件执行开始时更改后者(这将是一个好点,因为我这样就可以知道是谁在敲门)。
我知道我可以构造数据库上下文,将连接字符串作为参数传递,但这意味着我应该在运行时(在管道的早期)为每个请求创建数据库上下文,我不知道这是否可能效率低下或不好的做法。此外,我认为这样我无法将数据库上下文注册为将其注入控制器的服务......
什么是正确的方法?有人在生产中使用类似的配置吗?
提前致谢
entity-framework-core asp.net-core-mvc azure-sql-database asp.net-core
我知道我可以在创建 localdb 后更改数据库对象的排序规则,但是,是否有任何选项可以更改为新创建的对象设置默认排序规则?或者更好的是,无论如何要对负责 localdb 实例的 SQL Server 进程说具有不同于 SQL_Latin1_General_CP1_CI_AS 的默认排序规则?
我已经搜索过了,但我发现只是为已创建的数据库更改排序规则的讨厌程序......是否有可能几乎在 2017 年 SQL Server 不提供此选项?