0

使用:

  • エンティティ フレームワーク 5
  • MySQL コネクタ ネット 6.8.4
  • MySQL 5.6.21
  • ビジュアル スタジオ 2013
  • MySQL ワークベンチ 6.2

ワークベンチを使用して MySQL に次のテーブルを作成しました MySQL テーブル、型 int の 5 つの列 (pk、linestring、polygon、double、geometry)

Visual Studio 2013 でアプリケーションを開き、データ アクセス レイヤー プロジェクトに移動し、.edmx を開き、キャンバスを右クリックして、[データベースからモデルを更新...] を選択しました。新しいテーブルの追加に進み、[完了] をクリックすると、次のように表示されます。

正しいプロパティを持たないルート ジオメトリ データベース モデル テーブル 自動生成されたモデル クラスの冗長図

ご覧のとおり、空間データ型はすべて無視されました。

Data Access プロジェクトには、(とりわけ) 次の参照が含まれます。

  • EntityFramework
  • MySql.Data
  • MySql.Data.Entity.EF5
  • MySql.Web
  • System.Data.Entity

EF では DbGeometry 型になることはわかっていますが、更新プロセス自体がこれを把握できるはずだと思います。また、手動でマッピングを追加することもできますが、次に誰かが「データベースからモデルを更新...」を実行したときにそれらが吹き飛ばされるので、そうしないことをお勧めします。

洞察や提案はありますか?ありがとう!

編集: Entity Framework 6でテストされ、引き続き問題が発生しました

4

1 に答える 1

0

「データベースからモデルを更新」を試行した後にエラー リストの警告を見ると、次のように表示されます。

エラー 6005: データ型 'geometry' は現在、対象の Entity Framework バージョンではサポートされていません。テーブル「def.spatialdb.routegeometry」の列「test_geometry」が除外されました。

これは最新の Entity Framework 6 を使用しているため、コード ファーストのみを使用することはできないと思います。

可能な解決策は、自動生成されたクラスを編集して DBGeometry プロパティを追加することですが、モデルが更新されるたびにそれらが吹き飛ばされてしまいます。

于 2015-04-29T19:35:04.330 に答える