3

ASP.NET MVC3、Entity Framework の代わりに Linq to Sql クラス、express ed の代わりに MS SQL Server 2008 pro を使用して MvcMusicStore を実装します。

mvcmusicstore.codeplex.comからチュートリアルを入手しました

Linq to Sql クラスを使用し、Datacontext は MvcMusicSrotedataContext です。これを使用して新しいクラスを作成しようとすると

画像

追加ボタンをクリックすると、新しいウィンドウにエラーが表示されますエラー:「サポートされていないコンテキストタイプ

それで、これを解決するのを手伝ってくれませんか?ありがとうございました。

4

2 に答える 2

2

組み込みのMVCスキャフォールディングはLinqtoSQLをサポートしていません。代わりにEntityFrameworkを使用する必要があります。(または、スキャフォールディングを使用せず、独自のコントローラー/アクションロジックを手動で構築します。または、Linq to SQLをサポートするスキャフォールディングプラグインを使用します。)

于 2012-09-24T05:19:09.983 に答える
2

EFでも同じ問題が発生しました。VS2012を使用しています。

バックグラウンド:

私のケースの理由は..この自動生成プロセス (Scaffolding) は、部分クラスの概念を認識していないようです。

モデルファーストのアプローチを使用し、エンティティで継承を使用しました。例: エンティティ「B」と「C」は「A」から継承されます</p>

したがって、「DbContext」から継承された生成されたモデル クラス「DataModelContainer」には、「DbSet」と「DbSet」の定義はありません。つまり、次の 2 行がありませんでした。

public DbSet<B> B { get; set; }
public DbSet<C> C { get; set; }

生成された「DataModelContainer」クラス I は部分クラスなので、部分クラスの概念を使用して他の部分を完成させます。そして、これは Scaffolding にとって問題になります。

解決

私の回避策は、手動で追加した部分クラスを削除することでした。また、自動生成されたクラスに「DbSet」と「DbSet」の定義を追加しました。このソリューションの問題は、モデル クラスを再生成するときに同じことを繰り返さなければならないことです。

于 2013-06-27T04:45:13.523 に答える