使用Entity框架获取唯一行

时间:2013-09-12 04:06:46

标签: mysql linq entity-framework c#-4.0

我使用3个表来为用户设置角色。

1。模块

我,姓名

2。操作

Id,Name,ModuleId(带模块的外键)

3。 userActions

Id,UserId,ActionId(带操作的外键)

我想从userActions表中获取用户的唯一模块列表。我正在使用Entity Framework,我的数据库是Mysql 我使用了查询

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;

        }

它不返回唯一列表,但它返回Useraction表中的所有行。 如何获得唯一的模块列表(基于moduleId)

1 个答案:

答案 0 :(得分:0)

尝试使用linq .Distinct()扩展方法

var result = (from p in my_accountEntities.useractions
                  where p.UserId == item.Id
                  select p.action.module)
                  .Distinct().ToList();