我想知道,因为我想为我的web应用程序(MVC)控制器实现依赖注入容器。在.NET核心框架中,我过去在项目中有一个Startup.cs文件,用于向容器中添加瞬态和依赖项注入,也用于DbContext
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureS
编辑(02/03/2018) :自实体框架核心2.1,EF核心实现事务,跨上下文事务,环境事务和事务范围,所以这个问题现在过时了。
这是关于EF:中事务的正式文档。
如何在不同的方法中使用相同的事务?目标是如果发生错误,可以提交或回滚所有修改。
我使用的是实体框架核心版本1.1.0-预览1-最终和 Server 2014。
例如,我有一个实体框架数据库上下文:
public class ApplicationDatabaseContext : DbContext
{
public ApplicationDatabaseContext(DbContextOptions&
我正在编写一个库,它将围绕实体框架核心DbContext中的DbContext类提供新的API。我已经有了这些新API的版本,但在最终的DbContext实现中需要手动干预,例如:
// Code in the library.
public static class AwesomeExtensions
{
public static ModelBuilder AddAwesomeExtensionsSupportingEntities(this ModelBuilder modelBuilder)
{
// Set up custom entities I n
在我的网络项目中,我尝试使用实体框架6模型第一方法。模型是从单独项目中的现有数据库中生成的。对于模型生成,连接字符串保存在数据访问项目的app.config中。在主web项目(ASP.NET Core )中,我试图在Startup.cs类中注入上下文创建。
下面是上下文部分类的代码。使用分部类,因为上下文是从模板自动生成的。
[DbConfigurationType(typeof(EntityFrameworkConfig))]
public partial class MyEntities
{
public MyEntities(String name) : base(name)
我想创建数据库表使用实体框架核心从POCO-classes。当我尝试添加一个新的脚手架项目(选项: Razor pages using Entity Framework (CRUD) in VS)时,出现一个错误:“没有为实体类型‘Uri’找到合适的构造函数” 我了解到(其中) Uri必须在OnModelCreating方法中(在从dbContext继承的类中)转换为字符串。 DbContext类: public class SchoolDbContext : DbContext {
public DbSet<Student> Students { get;
用户可以拥有1或0帐户。
public class User
{
public int UserId { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public Account Account { get; set; }
}
public class Account
{
public int AccountId { get; set; }
我正在编写.Net核心中的第一个应用程序。
由于某种原因,我得到了这个构建错误:
错误-- 'LakeViewContext.LakeViewContext(DbContextOptions)‘LakeView的形式参数“选项”没有给定的参数。
我无法通过Google搜索或MS文档找到解决方案。
我的文脉课:
using LakeView.Models;
using Microsoft.EntityFrameworkCore;
namespace LakeView
{
public class LakeViewContext : DbContext
{
我的应用程序使用实体框架。由于我希望在单个请求中重用我的DbContext,所以我将其注册为Lifestyle.Scoped,如下所示:
container.Register<MyDbContext>(Lifestyle.Scoped);
其他类会注入这个MyDbContext。例如,请参阅以下存储库:
ApplicationsRepository是:
public class ApplicationsRepository : IApplicationsRepository
{
private readonly MyDbContext _dbContext;
pu
我为我的核心1.0应用程序添加了一个测试项目。其中我有在构造函数中使用dbContext的存储库。
如何在测试项目中访问这个dbContext并正确地注入它?
这是我的ApplicationDbContext课程:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: b
我正在尝试构建一个多租户的MVC web应用程序,到目前为止进展相当顺利。在我的应用程序中,我扩展了asp.net Identity 2用户属性,使其包含一个OrganisationId,其中创建的每个用户都被分配给一个组织。即,一个组织可以有多个用户与其关联。数据库可以有许多组织。
这是我之前的一篇文章,展示了我是如何的。
为了使用实体框架实现全局过滤,以便登录的用户只能看到他们关联的组织数据,我使用了github上的。
我已经设法让全局过滤器基于github提供的示例代码工作,其中我在DBContext中创建了一个静态属性,该属性可以根据登录的用户动态更新。
public class Ap
我对所有实体都有一个基类:
public class BaseClass
{
public int SomeProperty {get; set;}
}
public class SomeEntity : BaseClass
{
...
}
在某些情况下,我想忽略此属性。我可以在OnModelCreating方法中这样做吗:
public class MyContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
mod
在我的应用程序中,我使用实体框架,并希望编写单元测试。
谷歌叔叔告诉我,在我的dbContext中使用using-statemant会更好。另一方面,我想用依赖注入来模拟我的dbContext。
我该如何解决这个问题?
using-statemant:
using (var db = new ApplicationDbContext())
{
return await db.OrderingEquipments.ToListAsync();
}
依赖注入:
public CupsController
我有一个DbContext,它有许多类/实体,目标是Firebird数据库。我以前有一个名为DinnerPasses的实体,它是首先使用代码声明的(与所有其他实体一样):
public class FreezedOrdersContext : DbContext
{
public FreezedOrdersContext()
: base("name=ConnectionString")
{
}
// The deleted entity... (NOTE: THIS IS NO LONGER IN THE FILE...)
我们在应用程序中有几个依赖于实体框架6的类。因此,我们将我们的DbContext注入到各个领域。但是,某些模块实现需要DbContext的多线程方法作为临时服务,以防止任何线程问题。其他模块可以通过简单地在任何子模块或接收相同共享DbContext的模块上调用DbContext来将它们串在一起并进行大规模保存。但是,这种方法要求将DbContext添加为一个作用域服务。
除了构建一些子类或接口(这只是从我的DbContext继承)之外,是否有任何方法动态地确定一个类是获得给定服务的作用域版本还是临时版本?
子类上下文的示例可能如下所示
public class TransientDbConte
我在两个DbContexts中使用相同的实体。
public class ActualDbContext : DbContext
{
public DbSet<Doc> Docs { get; set; }
}
public class ArchivedDbContext : DbContext
{
public DbSet<Doc> Docs { get; set; }
}
public class Doc
{
...
}
如何向该实体中添加一个被忽略的字段,但如何从DbContext中填充它?
public class Doc
{
假设我有一个具有3层(程序集)的假设应用程序:Data、Biz和Gui。我的Biz程序集有一个泛型基类,几乎所有其他Biz类都继承自:
namespace Biz
{
// Base Class
public abstract class BizBase<T>
{
public string GetDataName()
{
return typeof(T).Name;
}
abstract internal protected T GetDataObject();
}
// Chil