0

アプリケーションをゼロから設計しています。これは、コーディング スキルをどんどん向上させるための学習オブジェクトとして行っています。このアプリケーションには、次の 2 つのエンティティがあります。

  • 都市

国の追加は難しくありません。ビューモデルをビジネス レイヤーの CountryService に渡し、それをエンティティに変換して永続化します。

次に、都市を追加する必要があります。これを行うには、CountryId と都市のフィールドを持つビューモデルを用意します。ビューモデルを CityService に渡します。そこで、いくつかのことを行う必要があります。正しい国のエンティティを取得し、都市データを都市オブジェクトに変換し、都市オブジェクトを国に追加するか、国を都市に追加する必要があります (Nhibernate が提案する AddXXX メソッドを使用)。次に、都市リポジトリを介して国で都市を保存するか、国のサービスを介して都市で国を保存してから、国のリポジトリに保存する必要があります。

メソッドごとに1つの関数を持つという考え方で、この種の機能を構造化する方法がわかりません。

4

1 に答える 1

2

都市サービスで国を取得する代わりに、都市サービスメソッドに渡してCountryId使用しないでください:-

var city = new City 
{
  Name = "London",
  country = session.Load<Country>(countryId)
};
session.save(city);

これはデータベースにヒットせず、物理的にレコードを返します。単に外部キーを設定できるようにするだけです。

つまり、セッションを完全に抽象化するのではなく、MVC プロジェクトに Nhibernate を取り入れてセッションを公開するという別の方法もあります。この一連の思考は勢いを増しています。

于 2013-06-19T06:14:35.033 に答える