私はEntityFrameworkを使用して2番目のプロジェクトに取り組んでいますが、コードが適切なコーディング慣行を下回っているかどうかについて、いくつかの意見を読みたいと思います。
私が提案するアーキテクチャは次のとおりです。
したがって、Webサイトはビジネスロジックを呼び出し、ビジネスルールはそこで評価されます。DALFacadeを呼び出すと、db2またはsqlサーバーにアクセスしているかどうかに関係なく、上位層には表示されません。
EF DALは、データベースとの通信を担当するCODEFIRSTアプローチです。エンティティクラスライブラリは、pocoクラスを含むプロジェクトです。ユーティリティは自明ですが、ActiveDirectoryからプロパティを読み取るようなコードを配置する場合があります。
だからここに私のコードがあります、私はそれをできるだけ単純化しました
1ページ:
protected void BtnSubmitRequestClick(object sender, EventArgs e)
{
var ecoBonusWorkflow = new EcoBonusWorkflow
{
IsOnHold = true
};
BusinessLogic.EcoBonusRequestSave(ecoBonusWorkflow);
}
ビジネスの論理:
public static class BusinessLogic
{
public static void EcoBonusRequestSave(EcoBonusWorkflow ecoBonusWorkflow)
{
if (true)
{
DalFacade.EcoBonusRequestSave(ecoBonusWorkflow);
}
}
}
DALFacade:
public static class DalFacade
{
private static readonly UnitOfWork UnitOfWork = new UnitOfWork();
public static void EcoBonusRequestSave(EcoBonusWorkflow ecoBonusWorkFlow)
{
UnitOfWork.EcoBonusWorkflowRepository.InsertEcoBonusWorkflow(ecoBonusWorkFlow);
}
}
次に、EF Dalクラスライブラリで、従来のEF4.1コードファーストアプローチを使用します。リポジトリパターンと作業単位も使用しました。
どんな観察も歓迎します