c# - 为什么当我尝试从具有多对多关系的表中获取数据时出现异常
问题描述
我使用 EF6 数据库第一个标识 2.0 表。我尝试获取用户和角色记录并为此使用导航属性。
这是我在 VisualStudio 中的数据库方案:
这是我在 SQLManagmentStudio 中的原始数据库方案:
这里是实体:
public virtual DbSet<ApplicationGroupRole> ApplicationGroupRoles { get; set; }
public virtual DbSet<ApplicationGroup> ApplicationGroups { get; set; }
public virtual DbSet<ApplicationUserGroup> ApplicationUserGroups { get; set; }
public virtual DbSet<AspNetRole> AspNetRoles { get; set; }
public virtual DbSet<AspNetUserClaim> AspNetUserClaims { get; set; }
public virtual DbSet<AspNetUserLogin> AspNetUserLogins { get; set; }
public virtual DbSet<AspNetUser> AspNetUsers { get; set; }
在这一行:
var query = context.AspNetUsers.SelectMany(c=>c.AspNetRoles).ToList();
我收到此错误:
Invalid object name 'dbo.AspNetUserAspNetRoles'.
知道为什么我会收到此错误吗?
解决方案
听起来您正试图从数据库中不存在的表中获取数据。检查您的数据库中是否存在表“dbo.AspNetUserAspNetRoles”。
在第二次查看您的问题时,您似乎正在尝试在 AspNetUser 和 AspNetRoles 之间创建多对多关系创建另一个 POCO 类链接多对多关系
public class AspNetUserAspnetRole{
public int AspNetRolesId {get;set;}
public int AspNetUserId {get;set;}
public AspNetRoles AspNetRoles {get;set;}
public AspNetUser AspNetUser {get;set;}
}
将此类添加到 db 上下文并添加迁移并更新数据库,然后您的查询应该可以工作
推荐阅读
- json - 将具有多个嵌套值的字段从 JSON 导出到 CSV
- python - 获取熊猫数据框中不同值的最有效方法是什么?
- opc-ua - 是否有任何开源 OPC UA 服务器,我可以在其中添加和配置 FileType 的节点
- bash - BASH 脚本中的 PIPESTATUS[0]
- c# - 在 Json.NET 序列化期间忽略某些属性,但在其他属性上是必需的
- html - 在 Angular html 模板中访问 const 枚举
- flutter - Flutter中带有bloc的无限列表(表示层中的列表长度不变)
- javascript - 为什么我的 setState 只更新一次状态?
- java - 是否可以在不使用模拟框架的情况下测试方法是否被调用
- c# - 如何从 zkteco 获取用户照片?