1

DB テーブルには最初にエンティティ フレームワーク コードを使用しています。データベースは別の開発サーバーに移動され、DBA はテーブルの代わりに操作する更新可能なビューを作成しました。接続文字列を変更したところ、「データベースで CREATE TABLE 権限が拒否されました........」というエラーが発生し始めました。テーブルが存在しないため、DB があるように見えたので、EF は 1 つを作成しようとしています。の手順に従いました

エンティティ フレームワーク コードの最初のビューと事前に生成されたビュー

更新可能なビューの使用方法

基本的に edmx ファイルを作成し、手動で DefininingQuery タグを削除し、store:views をテーブルに変更し、ビューを生成してプロジェクトに追加します。しかし、私はまだ同じエラーが発生しています。

私はEFを初めて使用し、ここで何をしているのかはっきりと理解していません。基本的に、ここから EF にこのデータベースを使用し、以前に使用したテーブルの代わりに、これらの更新可能なビューを使用するように指示する必要があります。ここでデータベースの移行が必要かどうかはわかりません。助けていただければ幸いです。

4

1 に答える 1

2

何もしない新しい DatabaseIntializer を作成し、デフォルトの代わりにこの Databaseinitlizer を使用するように DbContext に指示することで、なんとか解決してください。コードは次のとおりです。

internal class DatabaseInitializer : IDatabaseInitializer<DB>
{

  public void InitializeDatabase(DB context) {}      

}

public class DB : DbContext, IDbContext
{
    public DB() : base("name=ClientMgmtConnection") 
    {            
       System.Data.Entity.Database.SetInitializer(new DatabaseInitializer());
    }
}
于 2012-10-16T20:48:39.997 に答える