6

Adventureworks2012 DB でウィザードを使用して ADO.NET エンティティ データ モデルを作成することにより、データベース ファーストのアプローチを試みています。

DB 接続のテストが機能し、接続文字列が App.Config に追加されます。

(dbo) AWBuildVersionDatabaseLog、およびとしてマークされたテーブルを除くすべてのテーブルを選択していErrorLogます。

ウィザードが終了すると、.edmxファイルは空白になり、XML ビューでファイルを表示すると、ファイルEntityContainerは空になります。

モデルが作成されると、出力ウィンドウに次のエラーが返されます。

次の例外のため、モデルを生成できません: 「テーブル AdventureWorks2012.Production.Document はリレーションシップによって参照されていますが、見つかりません。

VS 2010 と .NET Framework 4.0 を使用しています

4

3 に答える 3

4

Entity Framework は、テーブル フィールドに設定された hierarchyid のようなデータ型を処理する方法を認識していないようです。問題の解決を含めるために、エンティティのリストの Production.Document テーブルを削除しました。

以下のこの参照は、Code Plex SQL Sever の EF バージョン 1.0 を使用した Adventureworks 2008R2 に関するものであり、EF バージョン 4.4 を使用して同じ CodePlex サイトの Adventureworks 2012 を使用していることにも注意してください。

参照: http://msftdbprodsamples.codeplex.com/wikipage?title=AW2008詳細

注: EF 1.0 の互換性の問題

Entity Framework チームは、使用する Katmai 機能に関して、AdventureWorks2008 が時代を少し先取りしていることをお知らせしたいと考えています。AdventureWorks2008 の一部のデータ型 (hierarchyid や geometry など) は、エンティティ フレームワークでサポートされていません。現在、Entity Framework 1.0 では hierarchyid データ型がサポートされていないため、可能であれば、Production.Document などのテーブルをモデルから除外することで回避できます。残念ながら、データベースからモデルを更新する Entity Framework ツールは、モデルの作成時に明示的に除外されていた場合でも、Production.Document などのテーブルを取得するため、AdventureWorks2008R2 でのその機能の使用は現時点ではサポートされていません。SQL Server 2008 型を完全にサポートする Entity Framework の後続リリースを楽しみにしています。最終編集日 5 月 25 日

于 2012-12-20T05:28:38.857 に答える
0

作成されていないテーブル (モデルに変換されていないテーブル) のすべての外部キーの [Allow Nulls] チェック ボックス (テーブル デザイン内) のチェックを外します。

ここに画像の説明を入力

次に、次の手順を実行して、モデルを更新してそれらのテーブルを取得できます。

ステップ 1 - .EDMX ファイルのデザイン (つまり、Model1.EDMX [Diagram1]) のどこかを右クリックします。 ステップ 2 - 次に、コンテキスト メニューから [データベースからモデルを更新] を選択します。 - 次に、「テーブル」チェックボックスを拡張し、目的のテーブルを選択します (初めて作成されたテーブルではありません). ステップ 5 - 次に、[完了] ボタンをクリックします. ステップ 6 - ソリューションを保存し、すべてが OK であることを願っています.

ここに画像の説明を入力

注: Visual Studio 2013 を使用しています。

幸運を。

于 2015-02-28T12:26:58.247 に答える
0

この例から学ぼうとしていて、意味のあることを何もしていない場合、このIFを回避する方法があります。問題のあるテーブルへの外部キーを削除して削除し、正常に取得できました

于 2013-06-01T04:48:01.557 に答える