質問

私は新しい設定によりどちらのモ(およびORMS)によじ登ろうとする政無数の異なるオプションでプレゼントにしました。参考までに、私が使っているが堪能な設定によりどちらのモ別のビジネスオブジェクトを使用DTOのために純粋にデータアクセス。私はapアーキテクチャをサポートする必要があwindowsとwebフロントは終了".

私quandryは一般的なアプローチが記載されてできない部分があると思うので多くのオプション私DTOのように、サンプルです。各DTOへの参照が、ISessionに渡されるかの詳細とともに、必要に応じて、自らの存しない:

public class EmployeeDTO...

    // Data Properties to be persisted to the database
    public virtual int Id { get; private set; }
    public virtual string FirstName { get; set; }
    public virtual string LastName { get; set; }
    public virtual ISession Session { get; set; }

    // Save logic
    public virtual void Save()
    {
        var transaction = Session.BeginTransaction();
        Session.SaveOrUpdate(this);
        transaction.Commit();
    }

    // Load logic
    public virtual void Load(int id)...

まずは: これは正しいアプローチを取るべきをDTOの保存および荷重のか。

第二に、 に関わらず、読み込み-保存などをコードは、お使いいただいた同一のISessionの寿命またはオブジェクト、またはすべて参考にISessionFactoryしながら、新たなセッション時にデータベースの相互作用が必要ですか?

    // Open a new session every time I interact with the repository
    var session = FluentSupport.SessionFactory.OpenSession();
    var transaction = Session.BeginTransaction();
    Session.SaveOrUpdate(this);
    transaction.Commit();
    session.Close();
    // Close the session when I'm done

のコースが常にあるオプション3に、以上)

役に立ちましたか?

解決

一般に、DTOsを含まな挙動などに保存し、負荷)を含まな知識をどのように取得し続(ISession).るように聞こえるように本当に作成したデータ。事業層に理想的な知ISessionます。とはいえ、できるショートカットをこねますので、ニーズに合ったものまで変更ORM以降の場合ORM滲みを通じて全ての層です。

のためのISession寿命管理すかどうかを判断するために使用するUnitOfWorkパターンで、基本的には各ユーザー要求のおいしいものをISession.ありその他のオプションのためのISession寿命よりも高い優先順位を与えうな限られています。よくあるセキュリティに最善の対策を施によるwebアプリ対windowsのアプリケーションに対す何でも他のアプリケーションの種類ものなんでしょうかを指定します。

他のヒント

く積み込み/保存コードとは別のごDTOs.をDTOト対象物 眺望 の基になるデータです。

きかんがつなのDTOsを使用しました。のようなこと:

resultSet = session.CreateCriteria(typeof(MyDataObject))
    .Add(query criteria, etc.)
    .SetResultTransformer(Transformers.AliasToBean<MyDTOObject>())
    .List<IMyDTOObject>()

DTOの描かれた看板が飾られて"データ転送体のこのダムで使用されるオブジェクトを通じ値または回収の価値観だ。すべきではないの責任の継続が、自らも地図1-1のドメイン用ブドメイン。

のISessionは非常に安価で開く/閉じます。の問題をで開のためのもので、接続プールできな再利用の接続までの時はどこですか?この問題は、マルチユーザ願います。

おシナリオを思う旅行サービス指向アプローチ店舗データを取得する.意味をDTOだけで使用する内部のサービス。場合にコピーしておく必要がありオブジェクトも同じだと思いま見て AutoMapper 作成したこの特定の目的です。持ちの場合windowsのみまたはwebのみプロジェクトで問題なく対応します。できます。できませんのセッションのWindowsアプリとウェブアプリです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top