1. ホーム
  2. .net

[解決済み] ADO.NET Entity Frameworkを使用しています。更新ウィザードでテーブルが追加されない

2023-02-23 02:22:36

質問

I ADO.Netエンティティデータモデルを追加しました。 をプロジェクトに追加し 更新ウィザード を使用して、モデルにテーブルを追加しました。 選択したテーブルのうち 5 つがデザイン サーフェスに追加されました。 他の 2 つのテーブルは追加されません。 ウィザードでそれらを選択して[完了]をクリックしても、デザイン サーフェスに表示されません。

これはバグでしょうか、それともテーブルをモデルに追加できない (設計上) 状況もあるのでしょうか。


UPDATE: XML (*.edmx) を見ると問題があることがわかります。

<!--Errors Found During Generation:
warning 6013: The table/view 'FooBar.dbo.Roles' does not 
have a primary key defined and no valid primary key could be inferred. 
This table/view has been excluded. To use the entity you will need to 
review your schema, add the correct keys and uncomment it.-->
<!--<EntityType Name="Roles">
    <Property Name="role_id" Type="decimal" />
    <Property Name="role_desc" Type="nvarchar" MaxLength="30" />
</EntityType>-->

どのように解決するのですか?

デザインサーフェスとエンティティモデルは別物です。EDMX のマッピングに、デザインサーフェスには表示されないテーブルが存在する可能性があります。このような場合、ファイルを XML として表示し、このケースに該当するかどうかを確認します。この場合、テーブルはすでにエンティティ・モデルの一部であるため、アップデート・ウィザードはテーブルを再追加することはできま せん。つまり、一般的に言って、更新ウィザードはデザイン・サーフェスよりもエンティティ・モデルについて詳しく知っているのです。 それ自体 .

これがまさにあなたが置かれている状況だとは思いませんが、解決のための一般的なアイデアを与えてくれるはずです:XMLに入り、問題のテーブルへの参照を探します。