2017-10-24 16 views
1

私は現在、既存のデータベースにテーブルを作成する権限しか持たないSQL ServerでEFコードの最初のテーブルを作成しようとしています。Entity Frameworkを使用して既存のSQL Serverデータベースにテーブルを作成する方法?

データベース全体を削除できません。私は移行update-tableを使ってEFにテーブルを作成させようとしましたが、__MigrationHistoryテーブルがすでに存在する(そして別のテーブルにリンクされている)ため、これは機能しませんでした。

誰かが私の問題の解決策を持っていますか?

答えて

3

あなたは

はのは、あなたの新しい表は「人」であるとしましょう、新しい表のクラスを追加し、データベース全体をドロップする必要はありません

public class Person 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

とDbContext

に次の行を追加します。
public DbSet<Person> Persons { get; set; } 

このテーブルを既存のデータベースに追加する必要があります。これは、移行テーブル

and then type Update-Database 

に新しいエントリを作成します。Visual Studioの

type Add-Migration AddedPersonTable 

内 - 最も簡単な方法は、Nugetパッケージマネージャコンソール(>パッケージマネージャコンソールの[ツール] - > [Nugetパッケージマネージャ)に移動していますこれにより、新しい人物テーブルが既存のデータベースに追加されます

here Read Migrationの詳細については、こちらをご覧ください。

+0

これはすでに試したことですが、「データベースに「__MigrationHistory」という名前のオブジェクトが既に存在します」というエラーが表示されます。これは、EFを使用する別のユーザーがデータベースを使用するためです。また、私はMigrationHistoryを編集することができません。なぜなら、そうする権限がないからです。 MigrationHistoryテーブルを必要とせずにテーブルを作成する方法はありますか? –

関連する問題