Mysql 使用实体框架获取唯一行
我使用3个表为用户设置角色 1.模块 身份证,姓名 2.行动 Id、名称、ModuleId(带模块的外键) 3.用户操作 Id、UserId、ActionId(带操作的外键) 我想从userActions表中获取用户的唯一模块列表。我使用的是实体框架,我的数据库是Mysql 我使用了这个查询Mysql 使用实体框架获取唯一行,mysql,linq,entity-framework,c#-4.0,Mysql,Linq,Entity Framework,C# 4.0,我使用3个表为用户设置角色 1.模块 身份证,姓名 2.行动 Id、名称、ModuleId(带模块的外键) 3.用户操作 Id、UserId、ActionId(带操作的外键) 我想从userActions表中获取用户的唯一模块列表。我使用的是实体框架,我的数据库是Mysql 我使用了这个查询 var result = (from p in my_accountEntities.useractions where p.UserId == item.Id
var result = (from p in my_accountEntities.useractions
where p.UserId == item.Id
select p.action.module).ToList();
List<module> modules = new List<module>();
if (result != null)
{
modules = (List<module>)result;
}
var result=(来自my_accountEntities.useractions中的p
其中p.UserId==item.Id
选择p.action.module).ToList();
列表模块=新列表();
如果(结果!=null)
{
模块=(列表)结果;
}
它不会返回唯一的列表,而是返回Useraction表中的所有行。
如何获取模块的唯一列表(基于moduleId)请尝试使用linq
.Distinct()
扩展方法
var result = (from p in my_accountEntities.useractions
where p.UserId == item.Id
select p.action.module)
.Distinct().ToList();
是的,它对我有用:)。还有一件事要问,在EntityFramework中使用Mysql有什么已知的局限性吗?我只在一个项目中使用过Mysql,但我们没有遇到任何重大问题,最好作为另一个问题提出来,让其他有更多经验的人回答。