0

私はEF4を初めて使用しており、可能な限りガイダンスに従っているので、私はPOCOルートを下りてPOCOクラスをプロジェクトに配置しました。私はDataAccessプロジェクトにリポジトリクラスを追加しましたが、DataAccessプロジェクトはPOCOプロジェクトを参照しています。ビジネスエンティティ、データアクセスレイヤー - 循環参照

私は現在、ビジネス機能をPOCOクラスに追加しています.POCOオブジェクトの特定のメソッドが、他のPOCOオブジェクトを作成しています。しかし、それが作成するPOCOオブジェクトはすでにデータベースに入っていますので、Circular参照を作成しているDataAccessプロジェクトを参照するためにBusinessEntityプロジェクトが必要です。

このスペースのガイダンスは高く評価されます。

+0

「他のPOCOオブジェクトの束を作成する」という方法を提供できますか?これは起こらないはずです。 POCOメソッドはドメイン/ビジネス固有のものでなければならず、データとは関係ありません。データの作業を開始すると、もはやPOCOではありません。 – RPM1984

+0

私はセキュリティのように "共有"オブジェクトを持っています。私はShare.Eventsに新しいPOCO "Event"オブジェクトを追加する "Split"メソッドを実装しました。イベントはDB内の既存のレコードである型を持ち、このEventTypeを取得してDALを呼び出す必要があります。 – BenBuckland

+0

@BenBuckland - あなたはそのコードを持ってはいけません。 DAL /リポジトリはそのプロパティを設定する必要があります。 EF4を使用しているので、共有を取得するときにイベントを "熱心に読み込む"ことができます:例えば 'var share = ctx.Shares.Include(" Events ")'、EFはイベントを自動的に入力します。 – RPM1984

答えて

0

うまくいけば私はあなたの問題を誤解しているわけではありませんが、あなたはDTO(データ転送オブジェクト)タイプのルートに行きたいと思うかもしれません。私は自分自身でEFに新しいですが、現在EF、WCF、WinFormsプロジェクトに取り組んでいます。私はクライアントにデータを送り返すために使用するWCFサービスの契約オブジェクトを持っています。 EFエンティティのプロパティをビジネスレイヤのDTOオブジェクトにマップします。クライアントはEFエンティティのすべてのプロパティを必要としないため、DTOを使用します。 Try this link。私はプロジェクトの構造に関して本当に良いものを見つけました。お役に立てれば。