1

ビジネス ロジック用に WCF サービスに接続する Web アプリケーションがあります。パフォーマンスと相互運用性の理由から、WCF 境界でデータを転送するために単純な Dto を使用したいと考えています。

ただし、データ アクセスには型指定されたデータセットを使用する必要があります (政治的な理由により、ORM またはその他のオプションは使用できません)。

型指定されたデータセットと一緒に Dto を使用するのは良い考えですか。誰かがこれをしましたか?おすすめのパターンはありますか?そして最も重要なことは、型指定されたデータセットから Dto を自動生成するためのライブラリ/ツール/方法はありますか?

4

2 に答える 2

2

エンティティ変換パターンが思い浮かびます。 http://msdn.microsoft.com/en-us/library/cc304747.aspx まあ、おそらくそれのバリエーションです。

私は最近似たようなことをしなければなりませんでした.datarow/datatableなどに格納されているデータをデータコントラクトオブジェクトに変換する別の「レイヤー」を作成しました。サービス レイヤーは、データ アクセス メソッドの結果をパラメーターとして、この新しいレイヤー メソッドを呼び出すことができます。

これは、簡単で汚い PSUEDOCODE の例です。

 public class personTranslator
 {

     public static PersonDataContract TranslateToContract(Datarow personDataRow)
    {
        PersonDataContract resultPerson = new Person;
        resultPerson.FirstName = personDataRow["FirstName"];
        resultPerson.LastName = personDataRow["LastName"];
        .
        .
        [etc.]

        return resultPerson;
    }
 }

SERVICELAYER クラス

 public PersonDataContract GetSpecificPerson([Parameters])
 {
     [other setup/validation code...]
    return   PersonTranslator.TranslateToContract(PersonDataAccess.GetPersonRow([Parameters]));
 }
于 2009-06-09T21:56:39.760 に答える
0

型指定された DataRow-s、DataTable-s を使用することをお勧めします。型指定された DataRow と Dto オブジェクトの間に大きな違いはありません。パフォーマンスに関しては、単純な Dto-s が役立つことをテストする必要があります (私はそれを疑っています)。相互運用性に関しては、型指定された DataRow-s は単純なクラスであるため、Dto オブジェクトと同様に相互運用性があります。

于 2009-04-20T09:28:06.780 に答える