0

エンティティ モデルを構築しました。私のビジネス オブジェクトの 1 つは、それを Store と呼びましょう。空間データ型があります。非常にすぐに、空間フィールドが EF4 経由でマップされていないことがわかりました。ただし、次のようなクエリを定義するxml宣言を編集することで、私は苦労しました。

  <EntitySet Name="Stores" EntityType="Eltrun.OnShelfAuditModel.Store.Stores">
    <DefiningQuery>
      SELECT [rowId], [storeName], [location].STAsText() as location FROM Stores
    </DefiningQuery>
  </EntitySet>

この時点で、このような部分クラスを介して Store エンティティをカスタマイズすることにしました。これは、変換を行い、SQLGeography データを格納したままにして、クライアントで double[] だけを返すためです (SqlGeography も Location (Bingデータ・タイプ)。

public partial class Store
{
    public double[] StoreLocation
    {
        get
        {
            SqlGeography geoLocation = SqlGeography.
                 STPointFromText(new SqlChars(this.location.ToCharArray()), 4326);
            return new double[]{
                           (double)geoLocation.Lat, 
                           (double)geoLocation.Long};                
        }
    }

}

クライアント プロジェクトで、小さなカスタマイズの Store データ型を認識させるにはどうすればよいですか? ありがとうございました!

4

1 に答える 1

1

プロパティにセッターを追加するだけで、RIA サービスのコード ジェネレーターとシリアライザーは、クライアントのバージョンの Store クラスに同等のプロパティを作成する必要があります。

それが役立つことを願っています...

于 2010-02-02T07:25:51.373 に答える