有关ADO.NET实体框架版本6的问题。如果您的问题不仅限于EF6版本,请添加通用[entity-framework]标记。
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 和
有没有办法显示数据库中的值? EF(代码优先)将列类型自动转换为整数,当尝试将列类型更改为“nvarchar”时,它会抛出异常...
我下面有一个比较复杂的查询,有几个嵌套的group by查询。问题是,我不知道如何才能将包含添加到任何一个group by查询中。有没有一种方法可以将...
我们的项目是已经在生产和工作的增强。由于我们看到多个性能问题。我们确定这是因为如果有多个include语句。我们有...
我正在通过ASP.NET Web API检索一个JSON对象图。我试图从一个子实体访问属性。然而,当查看浏览器的控制台时,它显示了一个引用($ref)到 ...
Entity框架。6. 4 Oracle Managed Data Access: 19.7 Oracle管理数据访问实体框架: 19.7 Visual Studio: 2019年Oracle数据库。11g Entity Framework向导工作时,没有任何...
在LINQ to Entities中不支持指定的类型成员'x'。只支持初始化器、实体成员和实体导航属性。
当我尝试运行该项目时,它给出了以下错误,如下图所示。错误 这是Job的模型,它引用了AspNetUsers模型。 public class Job { public int Id { ...