我已經創建了一個非常基本的存儲庫模式,我想包括一個乾淨的方式來加載相關數據。我已經看到人們使用.Include()以前,但我不是100%確定如何將這個介紹給我的解決方案。如何在存儲庫模式中加載相關數據
這是到目前爲止我的倉庫:
/Repository/IRepository.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyProject.Repository
{
public interface IRepository<T> where T : class
{
IEnumerable<T> GetAll();
T GetById(object Id);
void Insert(T obj);
void Update(T obj);
void Delete(Object Id);
void Save();
}
}
/Repository/Repository.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SeaBay.Models;
using System.Data.Entity;
namespace MyProject.Repository
{
public class Repository<T> : IRepository<T> where T : class
{
private myEntities db;
private DbSet<T> dbSet;
public Repository()
{
db = new myEntities();
dbSet = db.Set<T>();
}
public IEnumerable<T> GetAll()
{
return dbSet;
}
public T GetById(object Id)
{
return dbSet.Find(Id);
}
//... etc etc
}
基本控制器
public class MyController : Controller
{
private IRepository<entity> _repository = null;
public MyController()
{
this._repository = new Repository<entity>();
}
public ActionResult Index()
{
var mydata = _repository.GetAll();
return View(mydata);
}
public ActionResult Details(int Id)
{
var mydata = _repository.GetById(Id);
return View(mydata);
}
}
可以說例如我有兩張數據表'Student'和'Classes',假如IRepository使用'Student'作爲源代碼,我將如何在存儲庫模式中返回這個相關數據?