1

EFとコードファーストを使用してブログを構築しました。コードを使用した後のEntity Frameworkデータベーススキーママップの変更

[DBO]スキーマを使用して、ローカルのSQL Expressインスタンスに対してEFが実行されていました。

は、今私はブログを公開にしたい、とiは次行っている:私の[管理者に[DBO]に変更

  1. Generetadeテーブル用のスクリプトおよびSQL Expressからすべてのオブジェクトと]スキーマを作成します。
  2. サーバーに対してスクリプトを実行します。問題はなく、すべてのオブジェクトが作成されただけです。
  3. Webconfigを変更し、BlogContext接続文字列を追加して、ローカルSQL以外のサーバーを指すようにしました。
  4. サイトを公開しました。

エラーは次のとおりです。無効なオブジェクト名 'dbo.Articles'です。 - 記事は自分のエンティティの1つです。私のSQLサーバの[Administrator].Articlesにあります。

私はEFがまだDBOスキーマを使用していると考えることができます。私は管理者のユーザーを指す接続文字列を追加しましたが。

EFで使用する必要があると思われるスキーマを変更するにはどうすればよいですか?

答えて

3

データアノテーションまたは流暢なAPIを使用してスキーマを明示的にコンフィグレーションしなかった場合、EFはdboスキーマを使用します。ただ、サーチャーのための

[Table("MyTable", "MySchema")] 
public class MyEntity 
{ 

} 

それとも

modelBuidler.Entity<MyEntity>().ToTable("MyTable", "MySchema"); 
+0

ありがとうEranga。私は今それについて読んだ。 –

0

:私はちょうどEF5 .NET4.5で働いている、と

[Table("MyTable", "MySchema")] 

は動作しません。 VS2012に2つのパラメータが必要なオーバーロードがある場合でも、ビルド時にエラーが発生します。 'System.ComponentModel.DataAnnotations.Schema.TableAttribute'には2つの引数を取るコンストラクタが含まれていません。

しかし、コードマッピングはうまく動作します。

+0

'[Table(" MyTable "、Schema =" MySchema ")]'を使ってみましたか? – Dejan

関連する問題