DbContext API首次附带Entity Framework 4.1版,为使用Entity Framework提供了更高效的表面,可以与Code First,Database First和Model First方法一起使用。
使用额外的 SomeMap 表扩展和继承 EF 中的 BaseClass 时,如何解决“无效的列名‘Discriminator’”错误?
我一直在重构一些代码,但无法解决 EF 错误。我有一个 BaseClass,我在许多不同的项目中很大程度上复制了它,区别在于其中一些
何时应该使用实体框架调用 DbContext.dispose() ? 这个想象的方法不好吗? 公共静态字符串GetName(字符串用户ID) { var context = new DomainDbContext(); var userN...
我的应用程序接收多个文件(50 个文件,每个文件有 1000 行)并在数据流块中处理它们。在其中一个块 UploadToDatabaseBlock 中,我将 MaxDegreeOfParalellism 设置为 8。这会创建
DbContextOptionsBuilder 不包含“UseSqlite”的定义
尝试在我的应用程序中使用 SQLite 时,Dotnet Core Web API 抛出异常 DbContextOptionsBuilder”不包含“UseSqlite”的定义,并且没有可访问的扩展方法“UseSqlite” 怎么...
好吧,回到过去我们使用 ADO 并创建实体,但现在 Visual Studio Pro 2009 不再与 .NET 8 一起使用,它似乎是当今时代的目标。无论如何,除此之外我...
我最近将项目从.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 种不同的模式。一种模式的一些表...