gpt4 book ai didi

entity-framework - EntityFramework 中 IdentyUsers 的集合 - 没有定义键

转载 作者:行者123 更新时间:2023-12-02 04:33:14 24 4
gpt4 key购买 nike

一切正常,直到我决定在另一个实体中添加 IdentityUser 集合作为导航属性。

在模型生成过程中检测到一个或多个验证错误:

IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined. Define the key for this EntityType.
IdentityUserRole: : EntityType 'IdentityUserRole' has no key defined. Define the key for this EntityType.
IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' is based on type 'IdentityUserLogin' that has no keys defined.
IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' is based on type 'IdentityUserRole' that has no keys defined.

但它们是 Microsoft.AspNet.Identity.EntityFramework 库的一部分。他们怎么没有定义键???

我的实体和数据库上下文(EF v6.1、AspNet.Identity v.2.0):

public class User : IdentityUser
{
public virtual int OrganizationId { get; set; }
public virtual Organization Organization { get; set; }
}

public class Organization
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual ICollection<User> Users { get; set; }
}

public class DatabaseModelContext : IdentityDbContext<User>
{
public DatabaseModelContext() : base("ConnectionString") { }
public DbSet<Organization> Organizations { get; set; }
}

还尝试定义显式关系:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Organization>()
.HasMany(o => o.Users)
.WithOptional(u => u.Organization)
.HasForeignKey(u => u.OrganizationId);
modelBuilder.Entity<User>()
.HasOptional(u => u.Organization)
.WithMany()
.HasForeignKey(u => u.OrganizationId);
}

没有成功!!!

不可能,必须为 Entity Framework 内部类定义关键类型!!!

解决方案(更新)

实际上我的简化示例并没有反射(reflect)我的真实应用程序情况。我很抱歉。我一直在我的应用程序和组织实体中使用多个 Dbcontext,它们来自派生自 Dbcontext 类的单独上下文。这样,这个上下文对 IdentityUser 模型一无所知,但组织实体涉及用户实体 - 存在问题。

解决方案 - 我从 IdentityDbContext 派生了所有其他上下文!!!

最佳答案

实际上我的简化示例并没有反射(reflect)我的真实应用程序情况。我很抱歉。我一直在我的应用程序和组织实体中使用多个 Dbcontext,它们来自派生自 Dbcontext 类的单独上下文。这样,这个上下文对 IdentityUser 模型一无所知,但组织实体涉及用户实体 - 存在问题。

解决方案 - 我从 IdentityDbContext 派生了所有其他上下文!!!

关于entity-framework - EntityFramework 中 IdentyUsers 的集合 - 没有定义键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22577789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com