3

私のソリューションは、さまざまなプロジェクトで構成されています。各コンテキストのプロジェクトと、1 つのデータベースのみを参照するために他のすべてのコンテキスト クラスが継承するベース コンテキストのプロジェクトがあります。実際のエンティティを持つさまざまなドメイン クラス (顧客、レンタル、所有者) に対して、他に 3 つのプロジェクトがあります。また、ドメイン クラスも参照するヘルパー クラスが 1 つあります。

私の問題は、コンテキスト クラスのいずれかを右クリックし、[エンティティ フレームワーク] > [エンティティ データ モデルの表示 (読み取り専用)] を選択すると、「シーケンスには一致する要素が含まれていません」というメッセージが表示されることです。

プロジェクトが実際にソリューション フォルダー内にあり、これがソリューション ルートに配置されるとすぐに機能し始める場合、これが問題であるという投稿をいくつか見ました。私の場合、それはソリューションのルート ディレクトリにあるプロジェクトです。これは Entity Framework を使用する私の最初のプロジェクトです。あいまいである場合は申し訳ありませんが、問題の解決策を見ていないので、助けていただければ幸いです。

4

2 に答える 2

0

データベースの SetInitializer を null に設定し、EF で DB をアップグレードする必要があるのと同じくらい簡単かもしれません。

コードのいずれかで:

Database.SetInitializer<TContext>(null);

または設定で

<appSettings>
  <add key="DatabaseInitializerForType Namespace.Class, Assembly" value="Disabled" />
</appSettings>

明らかに構成はアセンブリ参照です。重要な部分は「value="Disabled"~.

これは、アプリの起動時に EF がデータベースを誤って削除しないようにするための通常の方法です。

于 2014-07-26T09:28:11.093 に答える