根据模型定义加入LINQ表

时间:2016-09-28 17:34:47

标签: c# asp.net asp.net-mvc linq join

我想基于模型的定义使用linq连接表。我想要的例子:

来自User.departments部门的

我的课程是:

USER CLASS:

public class User
{
    public User() {
        Departments = new List<Department>();
    }
    public int UserId { get; set; }
    public string UserName { get; set; }
    public virtual ICollection<Department> Departments { get; set; }
}

部门类:

public class Department
{
    public int DepartmentId { get; set; }
    public string DepartmentName { get; set; }
    public virtual User User { get; set; }
}

我在用户类中创建了这个:

public bool hasDepartment(int DepartmentId, int UserId)
{
    var test = from department in User.departments
    //...
}

但我收到此消息: &#39;用户&#39;不包含&#39;部门的定义&#39;

我正在创建一个ASP.NET MVC应用程序。我做错了吗?

3 个答案:

答案 0 :(得分:1)

如果您的邮件拼写完全正确,则错误原因必须为departments d。类定义中的“部门”属性为大写D

答案 1 :(得分:1)

  

用户&#39;不包含&#39;部门&#39;

的定义

问题存在,因为User class不是User class内的静态集合,因此您需要Departments ICollection的对象才能访问User class属性

由于在var test = from department in Departments中,请按如下方式修改访问权限:

`var test = from department in this.Departments`

object

理念相同,基于static的访问权限而不是{{1}}访问权限

答案 2 :(得分:0)

public bool hasDepartment(int DepartmentId, int UserId)
{
    var test = from department in Departments
    ...
}