私は3つの層を持つWPF MVVMアプリを持っています。私は3を必要とするDTO:WPF + REST + EF:DTOを整理する最良の方法は何ですか?</p> <ol> <li>UI</li> <li>サービス</li> <li>DAL</li> </ol> <p>といくつかの項目、例えば、発注用:
- PropertyChanged通知を持つMVVM層のクラス。
- Jsonデシリアライザのクラス(REST APIでオブジェクトを取得)
- Class for Entity Framework(DBのキャッシュデータ)。
まあ、私は3つすべてのケースでONEクラスを使用できますが、これはさまざまな属性(EF、JSon、MVVM)と余分なレイヤーの依存関係が混在しています。
もう1つの方法:3つのクラスを作成し、各レイヤーに独自のクラスがあり、その間に高速変換にAutoMapperを使用します。悪くはないが、それぞれのDTOクラスの3つのほぼ同じ(90%)コピー...エレガントでない解決策。
最良のアプローチは何ですか?あなたは何を使うのですか?おかげさまで
ありがとうございます!私はレイヤードWPFのアプリケーションを実装しようとしていると私は自分の方法で持っている1つの問題。 UIとDALの2つの層があり、DALにはEntity Frameworl CE(NuGet経由)があり、UIにはDALプロジェクトへの参照があるとします。それはうまくいきません、 "プロバイダが見つかりませんでした"というエラー、私はsoultionを見つけました:UIレイヤーにNuGet経由でEFを追加してください。今は動作しますが、どうすればこの依存関係を削除できますか? – TimeCoder
レイヤーが同じプロセスに存在する場合は、有効な接続文字列を定義できるようにEntity Frameworkを参照する必要があります。エンタープライズのN階層アーキテクチャでは、通常DALは別のコンピュータに配置されていますが、DALを使用してデータベースに接続するサービスについてクライアントアプリケーションだけが知っているため、クライアントアプリケーションではデータベースへの接続文字列を定義しません。 – mm8