我有两个实体,“用户”和“系统”,以及带有用户ID和SystemID的映射表“ MapUsersSystems”。一个用户可以访问多个系统,一个系统可以被多个用户访问。我是EF Core的新手,不确定我的方法是否正确。如何检索某个用户有权访问的所有系统?
Users CurrentUser = context.Users.SingleOrDefault(b => b.PkId == System.Convert.ToInt32(UserID));
List<MapUsersSystems> systems = context.MapUsersSystems.Where(b => b.FkUser == CurrentUser.PkId).ToList();
此时,我有一个MapUsersSystems对象列表,可以循环使用这些对象检索带有MapUserSystems外键的系统。但我不确定这是否是预期的方法。有没有更好的方法来获得用户可以访问的系统?
你近了 只需从中选择System
属性MapUsersSystems
:
List<System> systems =
context.MapUsersSystems
.Where(b => b.FkUser == CurrentUser.PkId)
.Select(us => us.System)
.ToList();
旁注:帮自己一个忙,在类名和引用属性中使用单数词。仅集合属性应为复数。使您的代码更加不言自明。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句