私のアプリケーションを3つのレイヤー(データレイヤー、ドメインレイヤー、プレゼンテーションレイヤー)に分割しようとしています。 データレイヤーがORM(XPO DevExpress)を使用しています。 ドメインのレイヤは、データベーステクノロジまたはORMテクノロジに関して100%の不可知論者です。 データレイヤーとドメインレイヤーはIRepositoryインターフェースで分離されています。ORMのアーキテクチャと使用方法
public interface IRepository<T>
{
void Insert(T entity);
void Delete(T entity);
IQueryable<T> GetAll();
T GetById(int id);
}
プレゼンテーションレイヤーには、グリッドコントロールと3つのボタン(追加、変更、削除)を含むフォームがあります。
私の最初の質問です:?私が追加したときに、グリッドコントロールの更新をしたり、すべてのデータをリロードせずにデータベースからレコードを削除する方法(変更通知)
2番目の質問は次のとおりです。電源を使用する方法私のドメイン層にそれを不可知論的にさせます。
はどこXpoRepositoryを置くことを?ドメインレイヤーに配置すると、ドメインレイヤーはXPO ORMを使用していることを認識しています。私は自分のドメインが無関心であることを望みます。(Clean architecture) –
確か。インターフェイスは、ドメインレイヤまたは別のデータインターフェイスレイヤに存在できますが、実装はドメインレイヤとそのインターフェイスを参照する実装固有のアセンブリになります。 YourApp.Data.XpoやYourApp.Data.EntityFrameworkのようなもの。 –
'クリーン'アーキテクチャは、六角形/ポートとアダプタの同義語です。 XPOの実装は、データアクセスポートに接続できるアダプタです。 –