有关ADO.NET实体框架版本6的问题。如果您的问题不仅限于EF6版本,请添加通用[entity-framework]标记。
2023年还有SqlConnection.ClearPool(SqlConnection)的位置吗?
我有一些后台服务每小时运行一次,循环遍历可能有 1000 多个数据库,它打开它们并检查需要操作的数据。 有一些性能问题......
我的 linq 语句生成的 SQL 超时。我编写的手动 SQL 不到一秒钟即可完成。 我正在尝试使用 linq 编写以下 SQL 语句: 选择月份(s.modifi ...
我有一个简单的 dbcontext,里面有三个集合。 当我使用 Windbg 调试它以查看活动对象时,我看到了一些 dbset。 所以,我的问题是为什么有些 dbset 在堆中? 这是我的代码: 公共场合...
如何使用实体框架从应用服务的 Azure 配置中的连接字符串中获取值?
我在 Azure 配置下的连接字符串部分有一个值,我正在尝试获取该值。我正在使用实体框架。 我尝试了以下方法: _myDbContext.Database.Connection.
如何让 EF6 与 Microsoft.Data.SqlClient 一起工作?
我正在使用 EF6 和 Microsoft.Data.SqlClient 作为托管标识。 我已经配置了 web.config 如下 我正在使用 EF6 和 Microsoft.Data.SqlClient 作为托管身份。 我已经配置了 web.config 如下 <connectionStrings> <add name="SCContext" providerName="Microsoft.Data.SqlClient" connectionString="Server= <myserver>;Authentication=Active Directory Default;Database=TestDB" /> <system.data> <DbProviderFactories> <add name="SqlClient Data Provider" invariant="Microsoft.Data.SqlClient" description=".NET Framework Data Provider for SqlServer" type="Microsoft.Data.SqlClient.SqlClientFactory, Microsoft.Data.SqlClient" /> </DbProviderFactories> </system.data> In the code I have defined the following: private MyContext _context; <----MyContext is of type DbContext public DbSet<User> Users { get; set; } 但是如果我调用类似的东西 _context.Users.Find(<guid>); 报错: System.InvalidCastException:“无法将类型为‘Microsoft.Data.SqlClient.SqlConnection’的对象转换为类型‘System.Data.SqlClient.SqlConnection’。” 关于如何解决这个问题有什么想法吗?
DBContext throwing 在上一个异步操作完成之前,第二个操作开始在此上下文上
我遇到异常:在上一个异步操作完成之前,在此上下文中开始了第二个操作。使用 'await' 确保任何异步操作在
PowerShell 中的 EF6 添加迁移,在 Visual Studio 之外
如何在 Visual Studio 之外的 PowerShell 窗口中运行 EF6 添加迁移? 当我尝试运行它时,出现以下错误消息: 添加迁移:术语“添加迁移”未被识别为...
我正在使用 MVC 5 和实体框架 6 组合我的第一个 Web 项目,我使用数据库优先方法和带视图选项的 EF6 脚手架设置我的模型。 我遇到的问题...
Oracle EntityFramework 迁移无法更新 model_blob
我正在使用 .NET Framework 4.5.1、Oracle 和 Entity Framework 从 2016 年开始从事一个旧项目。 该模型非常大,在大约 30 次迁移后,它遇到了一个无法完成的迁移。向上(...
我在被屏蔽的 MS Sql Server 中有一个错误。它没有隐藏在我们的开发环境中,但它在生产环境中。错误是: System.Data.Entity.Infrastructure.DbUpdateException: 一个 ...
正如您在下面的 ss 中看到的,我需要 2 个列。其中一个是 productId,另一个是我有多少插入的 ProductId。我知道我应该将它们分组的逻辑,但我无法编写代码...
我有错误:InvalidOperationException:尝试激活控制器时无法解析类型服务
我用EF 6.0制作网页时出错。 InvalidOperationException:在尝试激活“WebbyMyself.Control 时无法解析类型‘WebbyMyself.Models.StudentManageEntities’的服务...
我目前遇到的情况是,我从另一个实体清除实体引用,然后再将其分配回来。当我执行 UnitOfCommit.Commit 时,它总是执行 NULL 更新而不是 1111。是
将 AuthenticationStateProvider 传递给 DataContext
我正在使用 Blazor Server,我需要向所有数据库记录添加审计信息。 为此,我覆盖了 SaveChanges/SaveChangesAsync 以添加审核详细信息 公共覆盖任务 我正在使用 Blazor Server,我需要向所有数据库记录添加审计信息。 为此,我覆盖了 SaveChanges/SaveChangesAsync 以添加审计细节 public override Task<int> SaveChangesAsync(CancellationToken cancellationToken = default) { SetAudit(); return base.SaveChangesAsync(cancellationToken); } /// <summary> /// Populate the audit part of the db records /// </summary> /// <returns></returns> public override int SaveChanges() { SetAudit(); return base.SaveChanges(); } private async Task SetAudit() { var state = await _auth.GetAuthenticationStateAsync(); var userId = state.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value ?? "seed"; var tracker = ChangeTracker; 问题是如何让 IOC 将 AuthenticationStateProvider 传递给 DataContext。 public DataContext(DbContextOptions<DataContext> options, AuthenticationStateProvider auth) : base(options) { _auth = auth; } 它不起作用,因为 DataContext 是从 IDesignTimeDbContextFactory 中创建的 public class DesignTimeFactory : IDesignTimeDbContextFactory<DataContext> { public DataContext CreateDbContext(string[] args, AuthenticationStateProvider auth) { var optionsBuilder = new DbContextOptionsBuilder<DataContext>(); const string connectionString = @"server=localhost\\sqlexpress;database=bedbrigade;trusted_connection=SSPI;Encrypt=False"; optionsBuilder.UseSqlServer(connectionString); return new DataContext(optionsBuilder.Options, auth); } }
如何创建具有entityframeworkcode身份的不同类型的用户?
示例:我有 3 种类型的用户,如 x、y、z,X 具有 a、b、c 的属性。 Y 具有 a,b,c d,e 的属性,Z 具有 f,g,h 的属性。 这三类用户可能有不同类型的索赔......
从 Entity Framework 6 迁移到 Entity Framework Core(ASP.NET MVC5 项目到 Blazor WebAssembly(.NET Core 托管))
大家好 这是我的场景,我的任务是维护和更新一个项目,该项目是由以前辞职的开发人员开发的,我被聘为接替他,不幸的是,我们
ASP.NET Core 身份与 Blazor 和实体框架 6
我在这方面碰壁了,希望其他人有答案,我创建了一个带有身份的 Blazor 应用程序,这就是我的 dbContext 的样子: 公共类 ApplicationDbContext : IdentityDbContext 我在这方面遇到了困难,希望其他人有答案,我创建了一个带有身份的 Blazor 应用程序,这就是我的dbContext 的样子: public class ApplicationDbContext : IdentityDbContext<AppUser, AppRole, string, AppUserClaim,AppUserRole,AppUserLogin,AppRoleClaim,AppUserToken> { public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { } protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); builder.Entity<AppUser>().ToTable("Users"); builder.Entity<AppUser>().Property(x => x.FirstName).IsRequired(); builder.Entity<AppUser>().Property(x => x.LastName).IsRequired(); builder.Entity<AppUser>().Property(x => x.LastLoginDate); builder.Entity<AppUser>().HasMany(x => x.Roles).WithOne(x=>x.User).HasForeignKey(x=>x.UserId).IsRequired(); builder.Entity<AppUserRole>().ToTable("UserRoles").HasOne(c => c.Role).WithMany(c => c.UserRoles).HasForeignKey(c => c.UserId); builder.Entity<AppRole>().ToTable("Roles"); builder.Entity<AppRole>().Property(x => x.Description); builder.Entity<AppRole>().HasMany(x => x.UserRoles).WithOne(e => e.Role).HasForeignKey(ur => ur.RoleId).IsRequired(); builder.Entity<AppRole>().HasMany(x => x.RoleClaims).WithOne(e=>e.Role).HasForeignKey(x=>x.RoleId).IsRequired(); builder.Entity<AppRoleClaim>().ToTable("RoleClaims"); builder.Entity<AppRoleClaim>().HasOne(x => x.Role); builder.Entity<AppUserClaim>().ToTable("UserClaims"); } } 在我的program.cs中,我有这个代码: builder.Services.AddIdentity<AppUser, AppRole>() .AddEntityFrameworkStores<ApplicationDbContext>(); builder.Services.AddTransient<RoleManager<AppRole>>(); 这是我的身份类: public class AppRole:IdentityRole { public string? Description { get; set; } public virtual ICollection<AppUserRole>? UserRoles { get; set; } public virtual ICollection<AppRoleClaim>? RoleClaims { get; set; } public AppRole() { } } public class AppRoleClaim : IdentityRoleClaim<string> { public virtual AppRole Role { get; set; } public AppRoleClaim() { Role = new AppRole(); } } public class AppUser : IdentityUser { public string FirstName { get; set; } public string LastName { get; set; } public DateTimeOffset? LastLoginDate { get; set; } public byte[]? Photo { get; set; } public virtual ICollection<AppUserRole> Roles { get; set; } public AppUser() { FirstName = ""; LastName = ""; Roles = new List<AppUserRole>(); } } public class AppUserClaim : IdentityUserClaim<string> { } public class AppUserLogin : IdentityUserLogin<string> { } public class AppUserRole : IdentityUserRole<string> { public virtual AppUser User { get; set; } public virtual AppRole Role { get; set; } public AppUserRole() { User = new AppUser(); Role = new AppRole(); } } public class AppUserToken : IdentityUserToken<string> { } 这是我的表结构: 最后我的问题是,当我调用 UserManager.CreateAsync(NewUser) 时,一个用户被正确创建,但是当我尝试将新创建的用户添加到一个角色时,例如像这样的管理员角色 await UserManager.AddToRoleAsync(NewUser, "Admin"); 它不会抛出任何错误,但是什么碰巧它创建了一个具有空用户名、名字等的新用户,并向角色表中添加了一个具有空名称和空规范化名称的新角色。然后将该角色添加到UserRoles 表中。一切都没有任何错误。 根据 MS 文档,这应该创建一个新用户并将该用户添加到管理员角色。我从中构建的文档在这里https://learn.microsoft.com/en-us/aspnet/core/security/?view=aspnetcore-6.0 今天做了一些挖掘之后,我弄清楚了是怎么回事。看看我的AppUserRole课 public class AppUserRole : IdentityUserRole<string> { public virtual AppUser User { get; set; } public virtual AppRole Role { get; set; } public AppUserRole() { User = new AppUser(); Role = new AppRole(); } } 因为我正在新建一个新的 AppUser() 和一个新的 AppRole() 他们依次调用基类构造函数,其中 IdentityRole 将其 Id 属性设置为新的 Guid 当构造函数时发生同样的事情IdentityUser 被称为。我通过查看 AspNetCore.Identity 源代码发现了这一点。所以 EntityFramework 正确地完成了它的工作,它看到了一个全新的 AppUserRole 和一个新的 IdentityUser 和新的 IdentityRole,因为这些是 AppRole 的导航属性,所以它在数据库中创建了它们。 TLDR 解决方法是使 AppUserRole 类中的导航属性可为空,而不是在构造函数中新建它们,如下所示: public class AppUserRole : IdentityUserRole<string> { public virtual AppUser? User { get; set; } public virtual AppRole? Role { get; set; } public AppUserRole() { } }
Database.CreateIfNotExists() 不创建表
我在 Entity Framework 6 中使用代码优先方法进行迁移。我对现有数据库进行了反向工程,以创建一个名为 MyDbContext 的 DbContext 类,其中包含我的 D...
我从一个教程开始,在那里我创建了类: 命名空间 SamuraiApp.Domain { 公开课对战 { public int BattleId { 得到;放; } 公共字符串名称 { 得到;放; } ...
无法使用 Entity Framework 6 和 NPGSQL 获取函数导入的列数据
我们正在尝试将 Web 表单(.NET Framework 4.6.1)项目从 SQL Server 迁移到 Postgres。该公司使用 Entity Framework 6 创建数据库优先 EDM。 我们使用了 NPGSQL 和