实体框架-跨关联的LINQ查询



我有一个从数据库生成的实体框架。在这个数据库中有一个名为User_Security_Role的表,它由两个字段组成:Employee_ID和User_Name。这两个字段都充当其主键,也是外键。字段来自两个表Sytem_Role(以Role_ID作为PK)和User_Identity(以User_Name作为PK)。生成.edmx文件时,User_Security_Role表不是作为表生成的,而是作为两个实体(System_Role和User_Identity)之间的关联集生成的。

我想用以下查询来查询EF:

var usr = from u in _imEntities.User_Security_Role
          where u.Role_ID == 3
          select u.User_Name;

但是,"User_Security_Role"在实体集中没有显示为实体,我不知道如何查询它,因为它是一个关联集。如何编写linq查询来从关联而不是实体中选择数据?

听起来EF已经将User_Security_Role表标识为多对多关系中不需要的表(可能是这样)。在这种情况下,您可以将查询写成以下内容之一:

var usr = From u in _imEntities.User_Identities
          where u.Roles.Any(r => r.Role_ID == 3)
          select u;

var usr = from r in _imEntities.System_Roles
          where r.Role_ID == 3
          from u in r.UserSecurities
          select u;

相关内容

  • 没有找到相关文章

最新更新