【发布时间】:2014-06-15 13:28:46
【问题描述】:
这是一个我已经考虑过并试图让 POC 工作的主题,但老实说我有点迷失了。
所以我有一个 3 层网络应用程序,传统的 DAL、BAL 和 FE 结构用于本练习。
DAL 通过 Entity Framework 引用了我的数据库,由此我们可以访问单个表 JobInfo。
BAL 引用了 DAL 项目并且有这个接口:
public interface IJobInfoRepository
{
IEnumerable<JobInfo> SelectAll();
JobInfo SelectByID(string id);
void Insert(JobInfo obj);
void Update(JobInfo obj);
void Delete(string id);
void Save();
}
那我有这个课:
public class JobInfoRepository : IJobInfoRepository
{
public JobInfoRepository()
{
_db = new TestEntities();
}
public JobInfoRepository(TestEntities db)
{
_db = db;
}
private TestEntities _db = null;
public IEnumerable<JobInfo> SelectAll()
{
return _db.JobInfoes.ToList();
}
public JobInfo SelectByID(string id)
{
return _db.JobInfoes.Find(id);
}
public void Insert(JobInfo obj)
{
_db.JobInfoes.Add(obj);
}
public void Update(JobInfo obj)
{
_db.Entry(obj).State = EntityState.Modified;
}
public void Delete(string id)
{
JobInfo existing = _db.JobInfoes.Find(id);
_db.JobInfoes.Remove(existing);
}
public void Save()
{
_db.SaveChanges();
}
}
在我的 FE 项目中,我引用了 BAL 项目。但这就是我迷路的地方。如果不授予对 DAL 项目的 FE 访问权限,因此无法查看我的 JobInfo 实体,FE 代码如何执行 BAL 项目中的任何 CRUD 操作?
谢谢,
戴夫
【问题讨论】:
标签: entity-framework repository-pattern n-tier-architecture