コードファーストアプローチで作成されたMVC 5プロジェクトを継承しました。プロジェクトには、認証/承認のためのすべてのクラス(ここではA/Aと呼ぶ)(AccountController.cs、ManageController.csなど)があります。また、Referencesフォルダの下にA/A(Microsoft.AspNet.Identity.Coreなど)のために必要なすべての参照がありますが、A/Aは実装されておらず、web.configは次のようになっています:ASP .NET - MVC 5 - エンティティフレームワーク - コードファースト - フォーム認証
<system.web>
<authentication mode="None" />
私はに変更::私はこだわっている
が自動生成されたA /コードはApplicationDbContext(例を参照していることであるなど
<authentication mode="Forms">
<forms loginUrl="~Account/LogIn" timeout="1880" />
と今では、ログインページに私を取りますIdentityModels.csで)、ユーザーがデータなどを入力する画面を処理するwebappの機能部分、ac VehicleDBontextを介してDBを終了します。
ありVehicleDBConnectionという名前のweb.configファイル内のSQL Serverへの単一の接続がだ、と私は、接続を指すように、基本クラスを設定ApplicationDbContextのコンストラクタでのように、A/Aは、これと同じ文脈との接続を使用する必要があります。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("name=VehicleDBConnection", throwIfV1Schema: false)
{
}
この時点で私はDBをチェックしましたが、A/Aのサポートはありませんでした。つまり、dbo.AspNetUsersのようなテーブルはありません。したがって、ユーザーを作成しようとすると、 dbo.AspNetUsers '"
次のようにA/Aのテーブルを生成しようとしましたが、エラーが発生しました。b/cまだ2つのコンテキストがあります。
PM>有効-移行を 複数のコンテキストタイプがアセンブリに
を見つけた私は1つのコンテキストを持っていることを好むだろうが、それは、ログイン自動生成されたコードに大きな変化を意味している場合同じ接続を指す限り、2つの別々のコンテキストを保つ方が良いでしょう。
他のアプリケーションクラスの移行に影響を与えずに、既存のDBに自動的に生成されたA/A対応DBテーブル、stor procsなどを取得するにはどうすればよいですか?
は、あなたは、単にそれに応じてStartup.csを更新し、VehicleDBContextはIdentityDbContextを継承すること、および(もしあれば)ApplicationDbContextから、それにカスタムDbSetsを移動することによって、1つのコンテキストを持つことができます
リック
アブドゥルラーマンありがとうございます。私はIdentityDbContextへの切り替えを終え、PMを使用してこのコンテキストおよびデータベースの移行を可能にしました。これにより、認可/認証テーブルが生成されました:-)その後、PMの有効化 - 移行を使用して、DBのほとんどの変更が必要になるVehicleDBContextに戻りました。あなたが言ったようにすべて働いた – Rick