2013-12-22 12 views
7

私は空間データ型のデータベースを持っています。私はデータベースの最初のモデルとエンティティのフレームワーク6.0.2と.NET 4.5を使用します。生成されたクラスを使用しようとすると、次のエラーが発生します。エンティティフレームワーク6と空間データ

指定されたスキーマは無効です。エラー: 'Model.TypeB'タイプが使用できないため、 'Name_FK1'という関係はロードされませんでした。 以下の情報は、以前のエラーを解決するのに役立ちます。 'Data.TypeB'型の 'Position'プロパティには、 'System.Data.Spatial.DbGeography'というプロパティ型があり、プリミティブ型にマップできません。

空間型を使用するすべてのテーブルで同じエラーが表示されます。 'Name_FK1'は外部キーの関係です。

私は間違っていますか?

ありがとうございました。

答えて

5

私は解決する必要がある他の問題を引き起こした次のリンクの指示に従いましたが、私の空間的な問題を修正しました。

http://msdn.microsoft.com/en-US/data/dn469466

+0

これはアプリケーションをアップグレードする方法です。新しいアプリケーションがあり、NuGetを使用してEF 6.0を追加してから、新しいData - ADO.NET Entity Data Modelを追加します。そして、これは私のために働いていない。 – UrosP

+0

私はまったく同じエラーメッセージを表示しましたが、System.Data.Entity.dllが参照されていないことを確認し、コード生成テンプレートを削除してデザイナーをクリックして手順3を実行します。コード生成アイテムを追加する...それは私のために働いたので私が提供できる唯一のものです。 –

+0

私は試しましたが、失敗しました。 EF 6を追加しようとすると、EF 5.xのDbContext Generatorオプションしかありません。 EF 6.x DbContext Generatorのオプションはありません。私は100%EF 6ではなくEF 5をインストールしました。 – UrosP

21

私はそれを修正!自分自身を非常に誇りに思う:)

これは誰かに役立つことを願っています。だから、(http://msdn.microsoft.com/en-US/data/dn469466)上記のリンクから、このラインがあります:

Spatial classes (e.g. DbGeography, DbGeometry) have moved from System.Data.Spatial => System.Data.Entity.Spatial

私はこのエラーを得ていた前に:

The relationship 'IntakeModel.FK_Assignee_HomeLocation' was not loaded because the type 'IntakeModel.Location' is not available. The following information may be useful in resolving the previous error: The property 'Geo' on the type 'ConsoleApplication3.Location' has a property type of 'System.Data.Spatial.DbGeography' which cannot be mapped to a primitive type.

私はちょうど私のLocation.csファイルでこれを変更する必要がありました:

これに
public System.Data.Spatial.DbGeography Geo { get; set; } 

public System.Data.Entity.Spatial.DbGeography Geo { get; set; } 

問題が解決しました。そのリンク@Ricky Jonesを投稿してくれてありがとう。

+3

しかし、System.Data.Entity.SpatialはEntityFramework.dllにあります。私のPOCO EntitiesクラスライブラリにEntity Frameworkへの参照を追加しなければならないと言っていますか? – KellySandwiches

+1

@KellySandwichesはい – user1477388

1

この問題は、EF 6.0 edmx 用のEF 5.x DbContext Generatorを作成したために発生しました。この問題を解決するには、古いDbContext Generatorを削除し、EF 6.0 DbContext Generatorで新しいものを作成するだけです。

これは私にとってうまくいきました。

関連する問題