MVC 4 アプリケーションで EF6 を使用しているため、ビジネス オブジェクトの抽象クラスを作成しました。
したがって、次のような一般的な抽象クラスがあります。
public abstract class Repository<TEntity, TIdentifier> : IRepository<TEntity, TIdentifier> where TEntity : class { ... }
私たちのアプリケーションBusinessLayer
には、上記のクラスを実装するいくつかのクラス (エンティティごとに 1 つのクラス) があります。
例: 次のように
//Authorization is an entity here
public class AuthorizationBusinessObject : MD.EntityFramework.Repository.Repository<Authorization, int>
{
...
}
BaseBusinessObject
上記のクラスには for が必要です。
さて、私の質問はここにあります。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);
}