2012-05-24 83 views
2

你能幫助我在EmployeController(MVC 4)連接表(Сотрудник和Должность),使用內部連接

的源代碼:用於Employeess

public ViewResult List(int page = 1) 
{ 
    EmployeListViewModel viewModel = new EmployeListViewModel 
    { 
     Employes = repository.Сотрудник 
     .OrderBy(e => e.FAM).ThenBy(n => n.Name).Skip((page - 1) * PageSize) 
     .Take(PageSize), 
     PagingInfo = new PagingInfo 
     { 
      CurrentPage = page, 
      itemsPerPage = PageSize, 
      TotalItems = repository.Сотрудник.Count() 
     } 
    }; 
    return View(viewModel); 
} 

源代碼庫:

using System.Linq; 
using WebService.Domain.Abstract; 
using WebService.Domain.Entities; 

namespace WebService.Concrete 
{ 
    public class EFEmployeRepository: IEmployeRepository 
    { 
     private EFDbContext context = new EFDbContext(); 

     public IQueryable<Сотрудник> Сотрудник 
     { 
      get { return context.Сотрудник; } 
     } 
    } 
} 

我需要幫助加入表(Сотрудник[appointmnet_id]與Должность[ID])

+0

嘗試repository.Сотр дник.Include(Должность),其中Должность應該在Сотрудник實體虛擬財產。 – Meonester

+0

AD向上:流利的映射爲:Должность:HasOptional(a =>a.Сотрудник).WithMany(b =>b.Должность).Map(c => c.MapKey(「appointmnet_id」)) – Meonester

回答

0

在Сотрудник上創建一個名爲Appointment of typeДолжность的物業。那麼你不需要加入,你只需要遵循存儲庫內的導航屬性。

編輯:一個代碼示例

類定義:

public class Сотрудник { 
    ... 

    public int appointmnet_id { get; set; } 
    [ForeignKey(appointment_id)] 
    public Должность appointment { get; set; } 
} 

庫方法:

public List<Сотрудник> GetStuff(int page, int PageSize) { 
    return (
     from e in repository.Сотрудник.Include("appointment") 
     orderby e.FAM 
     thenby e.Name 
     select e 
    ).Skip((page - 1) * PageSize).Take(PageSize).ToList(); 
} 

MVC的操作:

public ViewResult List(int page = 1) 
{ 
    EmployeListViewModel viewModel = new EmployeListViewModel 
    { 
     Employes = GetStuff(page, PageSize), 
     PagingInfo = new PagingInfo 
     { 
      CurrentPage = page, 
      itemsPerPage = PageSize, 
      TotalItems = repository.Сотрудник.Count() 
     } 
    }; 
    return View(viewModel); 
} 
+0

感謝您的回答。你能寫一個小代碼示例 – He11b0rn

+0

更新的答案包括代碼示例。這個怎麼樣? – robrich

+0

哪裏可以撥打電話GetStuff? – He11b0rn