我们在 MVC 4 应用程序中使用 EF6,因此我们为业务对象创建了一个抽象类
所以,我们有一个通用抽象类,如下所示:
public abstract class Repository<TEntity, TIdentifier> : IRepository<TEntity, TIdentifier> where TEntity : class { ... }
在我们的应用程序中,BusinessLayer
我们有几个实现上述类的类(每个实体一个类)。
eg:如下
//Authorization is an entity here
public class AuthorizationBusinessObject : MD.EntityFramework.Repository.Repository<Authorization, int>
{
...
}
我们需要有一个BaseBusinessObject
以上的类。
现在,我的问题就在这里;我们如何才能BaseBusinessObject
为上述课程开设课程?
编辑 :
好吧,Repository<>
是 的基类BusinessObjects
,不是吗?
实际上,我们需要一个非泛型基类来解释BusinessObjects
为什么?
我们在 MVC 4 应用程序中使用 Web API 服务。在每个 web api 控制器中,我们必须具有与以下相同的操作,只是BusinessObject
不同。因此,如果我们可以有一个基础业务对象,我们可以在基础 web api 控制器中实现以下操作。
// Setting is an Entity
private readonly SettingBusinessObject _settingBusinessObject;
public SettingController()
{
_settingBusinessObject = new SettingBusinessObject(Entities);
}
public Setting Get(int id)
{
return _settingBusinessObject.SelectBy(id);
}
public List<Setting> Get(IEnumerable<int> ids)
{
return _settingBusinessObject.SelectAll(ids).ToList();
}
public Setting Put(Setting setting)
{
return _settingBusinessObject.Update(setting);
}
public List<Setting> Put(List<Setting> entities)
{
List<Setting> userList = new List<Setting>();
userList.AddRange(entities.Select(_settingBusinessObject.Update));
return userList;
}
public Setting Post(Setting entity)
{
return _settingBusinessObject.Insert(entity);
}
public List<Setting> Post(List<Setting> entities)
{
List<Setting> userList = new List<Setting>();
userList.AddRange(entities.Select(_settingBusinessObject.Insert));
return userList;
}
public void Delete(int id)
{
_settingBusinessObject.Delete(id);
}
public void Delete(List<int> ids)
{
_settingBusinessObject.Delete(ids);
}