DbContext API首次附带Entity Framework 4.1版,为使用Entity Framework提供了更高效的表面,可以与Code First,Database First和Model First方法一起使用。
我最近将项目从.NET 8升级到.NET 9,在运行应用程序时遇到以下错误: 无法解析作用域服务“System.Collections.Generic.IEnumerable”1[Micr...
无法为“Product”创建 DbSet,因为此类型未包含在上下文的模型中
我正在尝试对 dbContext 的派生类进行单元测试。我不断收到错误消息 [事实] 公共无效 GetAssync_Method_Called() { var options = new DbContextOptionsBuilder 我正在尝试对 dbContext 的派生类进行单元测试。我不断收到错误消息 [Fact] public void GetAssync_Method_Called() { var options = new DbContextOptionsBuilder<CoreDbContext>() //.UseModel() USE MODEL .UseInMemoryDatabase(databaseName: "test") .Options; using (var context = new CoreDbContext(options)) { context.Set<Product>(); //THIS IS THE WAY TO ADD AN ENTITY IN THE CONTEXT...???? Expression<Func<Product, bool>> filter = x => !x.IsDeleted == 1; var result = GetAllAsNoTrackin(filter); Assert.Equal(1, result.Count()); } } 下面是 CoreDbContext 和我正在测试的方法。 public class CoreDbContext : DbContext { public CoreDbContext(DbContextOptions<CoreDbContext> options) : base(options) { } public IQueryable<Product> GetAllAsNoTrackin(Expression<Func<Product, bool>> filter) { var dbSet = Set<Product>().AsNoTracking(); //GETTING ERROR HERE... //more code... } } 我不断收到同样的错误: 无法为“Product”创建 DbSet,因为此类型未包含在上下文的模型中 谷歌搜索后,看起来 DbContextOptionsBuilder 有一个名为 UseModel(IModel model) 的方法,可以代替 OnModelCreating(ModelBuilder builder) 被调用。 不幸的是,我没有在任何地方看到任何有关如何使用它的代码。此外,添加新实体是在创建上下文之后发生的,而 UseModel() 是要传递给 DbContext 的选项的扩展方法。 感谢您的帮助 A DbContext 需要了解实体,它不会发现并假设您在项目中定义的每个类都是实体。有几种方法可以通过约定和/或显式配置来完成此操作。 DbContext 了解实体的最常见方式是通过声明的 DbSet: public class CoreDbContext : DbContext { public DbSet<Product> Products { get; set; } } 这里 DbContext 初始化将识别 Product 实体,并使用约定将其及其公共属性(包括导航属性实体类型)与表结合起来。 如果您没有 DbSet 或与具有 DbSet 的实体的关系,或者无法遵循约定来正确映射它,则需要显式配置。两种常见的方法是通过 OnModelCreating 或使用 IEntityTypeConfiguration,然后在 modelBuilder.ApplyConfigurationsFromAssembly(GetType().Assembly); 内使用 OnModelCreating。这假设实体在与 DbContext 相同的程序集中声明,否则您可以传递任何程序集引用来定位每个实体的 IEntityTypeConfiguration 实现。 DbContext 可以通过 Set<TEntity> 访问配置的实体,但通常通过 DbContext 中的 DbSet<TEnitity> 属性声明和访问这些实体更简单。 与访问和配置实体相关的几乎所有内容都通过 Microsoft 文档中的示例进行了深入介绍:https://learn.microsoft.com/en-us/ef/core/
[HttpPost] 公共 ActionResult 编辑(电影 movie) { if (ModelState.IsValid) { db.Entry(电影).State = EntityState.Modified; db.SaveChanges(); 返回重定向到操作(...
使用 DbMigrationsConfiguration 自定义 DbContextFactory
您将在下面找到我的自定义 IDbContextFactory 实现。在我的存储库中,我创建了这个工厂的一个实例,因为我正在做一个多租户应用程序(每个租户都有自己的数据库),所以我还需要...
使用干净的架构和存储库/工作单元来构建具有 ASP.NET Identity 的应用程序
我正在使用 Clean Architecture(后端部分)创建一个项目。在此应用程序中,我将处理可以使用 jwt 身份验证注册/登录并使用...进行操作的用户。
Entity Framework Core 8.0.10 不加载相关数据
我有用户和角色模型。其中两个模型之间生成多对多关系,由两端的集合表示: ICollection 角色中的用户 {get;set:}...
如何使用IdentityDbContext代替DbContext
我正在学习有关如何构建 MVC 项目的教程。我是初学者,所以我按照教程中的具体步骤进行操作。 到目前为止,我的 ApplicationDbContext 继承自 DbContext 并且它工作正常...
我正在创建一个实体模型,我想在其中放置未映射的属性。这些属性是为了简化对关系中的值的访问。所示模型只是一个简单的示例。 在
IDbSet.Add 和 DbEntityEntry.State = EntityState.Added 有什么区别?
在 EF 4.1+ 中,这两行代码有区别吗? dbContext.SomeEntitySet.Add(entityInstance); dbContext.Entry(entityInstance).State = EntityState.Added; 或者他们也做同样的事...
我有以下代码,我从前端收到不完整的实体,进行更改并更新它。然后,我从数据库中检索现在已完成的相同实体,创建新的 chan...
同时使用 EF Core DbContext 和 ASP.NET Core Identity 的 UserManager
我的用户实体: 公共类用户:IdentityUser { 公共办公室 办公室 { 得到;放; } // 不可为空 // ...其他自定义属性 } 假设我想创建一个新用户: 变量...
忽略重复条目并在 EF Core 中的 DbContext.SaveChanges() 上提交成功条目
我有一个 ASP .Net Core 2.2 Web API。在我的一个控制器操作中,我向 MySQL 数据库表添加了一堆行(我使用的是 Pomelo)。 例如: _dbContext.AddRange(实体); _dbC...
C# - 具有 2 个项目的解决方案迁移失败(DBContext setr 仅在一个项目中)
错误信息: 在程序集“API_Test_Console”中找不到 DbContext。确保您使用正确的程序集并且类型既不是抽象的也不是泛型的。 如果您看一下项目
我一直在寻找使用 Blazor 从数据库中删除行的方法。我一直在尝试,但遇到了需要长代码的问题,我想让我的项目保持简单。 我的代码: @pa...
将 Entity Framework 6 与多个数据库模式结合使用,但使用一个 DBContext
我有一个使用 EF 作为 ORM 的应用程序。数据库过去只有一种模式 dbo,一切都工作正常。我最近将表组织成 4 种不同的模式。一种模式的一些表...
使用 MSTest 测试 ASP.NET Core MVC 中的实际数据库
在 ASP.NET Core MVC Web 应用程序中,我需要测试我的数据库,因此我创建了一个包含 DbContext 的项目。现在我需要测试这个数据库(DbContext),尽管我已经阅读了一些
上下文 我从 Javascript 对控制器进行 ajax 调用以更新实体“Owner”。控制器使用服务来处理请求,并相应地更新实体。在
在 DbContext 类中管理 SQLite 连接是一个好习惯吗?
我正在编写一个使用SQLite的程序,每次使用数据库时打开和关闭连接对我来说似乎很奇怪,所以我决定在上下文类中使用它。这是正常现象吗
我想在我的 DBContext 中有一个全局配置,以将模型中的所有枚举保存为数据存储中的字符串,约束是我需要配置才能工作,即使枚举可为空 我已经...
在DbContext中获取appSettings,无依赖注入,无MVC
我有一个.net core 8应用程序。 它是一个多对象分层 DLL 架构。从上到下我的架构看起来像这样。 “简单”Web Rest API DLL业务逻辑代码层 DLL 实体...