1

私はSQL Express 2008とvs2008を使用しており、c#で書いています。

Geography 列を含む db テーブルがあり、そこに収集した gps データを入れる必要があります。このテーブルの Entity-Framework マッピングを作成しようとすると、そのような列の種類をマップできないという警告が表示され、列が無視されました。次に、nHibernate.Spatial プロジェクトを調べましたが、Geography ではなく、Geometry タイプのみを変換しているようです。そこには運がありません。ビューを使用して Geography を VarBinary にキャストし、作成されたエンティティ クラスに、バイナリを逆シリアル化して Geography に戻す別のプロパティを追加できると言われました。データベースからデータを読み取るにはそれでうまくいくと思いますが、それらの行をデータベースに挿入する必要もあり、ビューに行を追加できません。C#コードで、データベースから地理データを簡単に読み書きするために使用できる他のトリックはありますか?

4

2 に答える 2

1

EF についてはよくわかりませんが、NHibernate を使用すると、その型フレームワークを拡張できますIUserTypeRay Houston's Blogに少しあります。

Ayendeの例に基づいて、これを使用して、XmlSerializationをXmlフィールドに使用するタイプを作成することに成功しました

于 2008-10-17T23:18:34.490 に答える
0

現時点では、Entity Framework v1 は SQL UDT をサポートしていません - 2008 Spacial 型は UDT です。

WKB (byte[]/varbinary) を使用して long/lat データを保存できます。

補足として、次のバージョン (1.5 CTP) の Microsoft MIX09 で UDT がサポートされていることに気付きませんでした。おそらく私は何かを逃した。

于 2009-05-06T20:57:05.400 に答える