[英]LINQ to SQL - No Foreign Keys
數據庫中沒有定義外鍵。 所以我建立了協會。
問題:似乎無法按預期引用Role表:
我可以得到u.UserNamesInRole然后無法跳轉到角色表。
IEnumerable<fmwebapp1.Old_App_Code.TelerikUsersDataContext.User> userList = (from u in dbTelerik.Users
where u.UsersInRoles.Role.Name = "admin"
select u.UsersInRoles);
where u.UsersInRoles.Role.Name = "admin"
那是不正確的語法。 你需要==
。
在多對多關系中,當我只想從一方獲得結果,通過另一方的值過濾時,我通常在關系的中間開始我的查詢:
要獲得角色的用戶:
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將為您完成所有工作。
如果這是不可能的,試着加入一個Association
從Role
到User
,然后設置關聯集名稱UsersInRole
。 從設計器中刪除UsersInRole
實體。
您還可以比較從導入兩個表之間的“正確”FK關系生成的EDMX文件與您在EDMX中的內容,然后手動編輯XML以匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.