そのため、私は大学向けのASP.NETプロジェクトに取り組んでいます。IISとSQLServer2008を実行しているサーバーにコードをアップロードする必要があります。MVCCode-FirstEFを使用してプロジェクトを作成しました。Entity Frameworkシステムが正しく機能するには、データベースを作成するためのアクセス許可が必要であることを理解しています(空のデータベースを指定して、データベースにデータを入力させることはできません)。共有SQLServerに対するデータベース作成権限がないため、これにより問題が発生しました。これを回避する方法はありますか?
2 に答える
権限がないため、デプロイしようとしているサーバー上にデータベースを作成するには、DBA を取得する必要があるようです。これは、データベース作成スクリプトまたはデータベースのバックアップから行うことができます。開発マシンの db。次に、この行をglobal.asaxに追加することにより(または実際にデータベースに最初にアクセスする前の任意の場所に)、データベースを自動的に作成/更新しようとしないようにEFコードに最初に指示できます。
Database.SetInitializer<YourContextType>(null);
EF にデータベースを作成させるのではなく、既存のデータベースを使用することができます。私はこれを自分で行いましたが、EF 移行を使用している場合のみです。そうしないと、テーブルの例外が見つからないなどの問題が発生します。
移行を使用する場合は、接続文字列を空のデータベースにポイントし、最初の移行を作成してデータベースにスキーマを設定し、データベース自体を更新します。
この回答を参照してください: EntityFramework 4.3 で既存のデータベースの移行を作成するにはどうすればよいですか?
.. EF 移行を開始するためのこの素敵なリンクが含まれています: http://thedatafarm.com/blog/data-access/using-ef-migrations-with-an-existing-database/
これらはすべて Nuget から入手できます。Pluralsight コンテンツにアクセスできる場合は、このトピックに関する Julie Lerman のビデオを強くお勧めします。
移行を使用したくない場合でも、SMMS を使用してデータベース オブジェクトを手動で作成するだけであれば Code First を使用できますが、モデルとデータベースの同期を維持するという手動の作業が必要になることは明らかです。