使用存储库访问2个表

时间:2016-05-05 01:59:01

标签: asp.net asp.net-mvc linq repository

在我的ASP.NET MVC应用程序中,我有3个表: 员工(id,name,surname,departmentId,regionId) 部门(身份证,姓名) 区域(id,名称)

我在创建视图中需要一个表单,我将在其中输入员工的姓氏+选择列表,其中包含部门(名称)+带有区域(名称)的选择列表

所以我的ViewModel看起来像这样:

public class EmployeeVM
{
    public int EmployeeId { get; set; }
    public string EmployeeSurname { get; set; }
    public int RegionId { get; set; }
    public int DepartmentId { get; set; }

    public IEnumerable<SelectListItem> regions { get; set; }
    public IEnumerable<SelectListItem> departments { get; set; }
}

获取存储库中的Employees方法(类似区域和部门):

public IQueryable<Employee> GetEmployees()
    {
        _db.Database.Log = message => Trace.WriteLine(message);
        var employees = _db.Employees.AsNoTracking();
        return employees;
    }

控制器中的LINQ:

var employees = _repo.GetEmployees();
var regions = _repo.GetRegions();
var departments = _repo.GetDepartments();

IEnumerable<EmployeeVM> vm =
            from employee in employees
            join region in regions
            on employee.regionId equals region.Id into something
            select...

并且有两个问题:

  1. 这是我的VM的正确声明吗?

  2. 如何在“......”之后编写linq语法或者它已经不好了?

0 个答案:

没有答案