Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ到SQL-无外键_C#_Linq To Sql - Fatal编程技术网

C# LINQ到SQL-无外键

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

数据库中未定义外键。所以我建立了关联

问题:似乎无法按预期引用角色表:

我可以到达u.UserNamesInRole,但无法跳转到角色表

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