2012-05-01 24 views
0

私は大学のASP.NETプロジェクトに取り組んでいます。 IISとSQL Server 2008を実行するサーバーにコードをアップロードする必要があります。私はMVC Code-First EFを使用してプロジェクトを作成しました。私は、Entity Frameworkシステムが正しく動作するようにデータベースを作成するための権限が必要であることを理解しています(空のデータベースにデータを入力するだけではデータを埋め込むことはできません)。共有SQL Serverにデータベース作成権限がないので、これは私の問題です。これを回避する方法はありますか?ASP.NET MVCコードファーストEF - データベース作成権限なしでEFを使用できますか?

答えて

0

既存のデータベースを使用することはできますが、EFで作成することはできません。私はこれを自分でやったことがありますが、EFの移行を使用している場合にのみ認められます。それ以外の場合は、テーブルの例外が見つからなかったり、例外が発生したりすることがあります。

移行を使用する場合は、接続文字列を空のデータベースに指定し、最初の移行を作成してデータベースにスキーマを移入し、データベース自体を更新します。

この回答を参照してください:http://thedatafarm.com/blog/data-access/using-ef-migrations-with-an-existing-database/

このすべてがNugetで入手することができ、あなたはPluralsightのコンテンツへのアクセスを持っている場合は、私ができる:EF移行を使い始めるには、この素敵なリンクを含んHow do I create a migration for an existing database in EntityFramework 4.3?

..このトピックに関するJulie Lermanのビデオを強くお勧めします。

マイグレーションを使用したくない場合は、SMMSを使用してデータベースオブジェクトを手動で作成するだけでコードネームを使用することはできますが、モデルとデータベースを同期させたまま手動で作業することは明らかです。

2

権限を持っていないので、配備しようとしているサーバーにデータベースを作成する必要があるように思えます。これは、データベース作成スクリプトか、あなたのdevマシン上のデータベースのデータベースバックアップ。この行をglobal.asaxに追加することで、データベースを自動的に作成/更新しないようEFコードに指示することができます(または最初にデータベースにアクセスする前のどこでも)。

Database.SetInitializer<YourContextType>(null); 
関連する問題