基于模型定义连接LINQ表

本文关键字:定义 连接 LINQ 模型 于模型 | 更新日期: 2023-09-27 18:09:12

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

from department in User.departments…

我的类是:

用户类:

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; }
}

我在用户类中创建this:

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

但是我有这个消息:'User'不包含'departments'的定义。

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

基于模型定义连接LINQ表

User'不包含'departments'的定义

问题存在,因为Departments不是User class内部的静态集合,所以您需要User class的对象来访问Departments ICollection属性

由于在User class中,将访问修改如下:

var test = from department in Departments Or

`var test = from department in this.Departments`

思路相同,使用基于object的访问而不是基于static的访问

如果您的消息的拼写是准确的,那么错误的原因必须是departments与较低的d。类定义中的"Departments"属性是大写的D

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