C# LINQ到SQL-无外键
数据库中未定义外键。所以我建立了关联 问题:似乎无法按预期引用角色表: 我可以到达u.UserNamesInRole,但无法跳转到角色表C# LINQ到SQL-无外键,c#,linq-to-sql,C#,Linq To Sql,数据库中未定义外键。所以我建立了关联 问题:似乎无法按预期引用角色表: 我可以到达u.UserNamesInRole,但无法跳转到角色表 IEnumerable<fmwebapp1.Old_App_Code.TelerikUsersDataContext.User> userList = (from u in dbTelerik.Users where u.UsersInRoles.Role.Name = "admin" select u.UsersInRoles); IEnume
IEnumerable<fmwebapp1.Old_App_Code.TelerikUsersDataContext.User> userList = (from u in dbTelerik.Users
where u.UsersInRoles.Role.Name = "admin"
select u.UsersInRoles);
IEnumerable userList=(来自dbTelerik.Users中的u
其中u.UsersInRoles.Role.Name=“admin”
选择u.UsersInRoles);
这是不正确的语法。你需要<代码>=> > > 在多对多关系中,当我只想从一方得到结果时,在另一边的值上过滤时,我通常在关系的中间开始查询: 要获取角色的用户,请执行以下操作:
var users = from ur in context.UsersInRole
where ur.Role.Name == "admin"
select ur.User;
要获取用户的角色,请执行以下操作:
var roles = from ur in context.UsersInRole
where ur.User.UserName == "Jon"
select ur.Role
在数据库中添加FK关系并重新导入表是最简单的。EF将为您完成所有工作 如果不可能,请尝试将
关联
从角色
添加到用户
,然后将关联集名称设置为用户角色
。从设计器中删除UsersInRole
实体
您还可以将通过导入两个表之间的“正确”FK关系生成的EDMX文件与EDMX中的文件进行比较,然后手动编辑XML以匹配
var roles = from ur in context.UsersInRole
where ur.User.UserName == "Jon"
select ur.Role