私はサイトを持っています。まずCOdeを使用します。マイ・マイグレーション・マイグレーション・コマンドは、以下のコードを生成しました。テーブルコードを最初に生成し、アプリケーション実行時にテーブルを生成しない
public partial class StudentEntity : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.Student",
c => new
{
id = c.Int(nullable: false, identity: true),
name = c.String(),
})
.PrimaryKey(t => t.id);
}
これで、サイトが初めて実行されたときに、私はStudentテーブルをDB(SQLサーバー)で生成したいと思っています。
今はサイトを実行するとテーブルが作成されません。これどうやってするの?私は、任意のシードデータは
public partial class flagen:DbContext
{
public flagen() : base("name=cf2")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
//old entity
public virtual DbSet<flag> flags { get; set; }
//new entity
public virtual DbSet<Student> students { get; set; }
}
は、その後、私はテーブルが作成されますので、コンテキストを使用しようとした
マイデシベルコンテキストクラスを初期化したいいけません。それは、「データベースが作成されてから 『flagen』コンテキストをバックアップモデルが変更されました。データベースを更新するために、コードファーストの移行を使用することを検討してください」というエラーがスローされます 私はクラス
Database.SetInitializer<flagen>(null);
base.OnModelCreating(modelBuilder);
をdbcontextするために以下の2行を追加して、今それが言います「無効なオブジェクト名の学生」
どのような解決方法がありますか?
サイトの起動時にEFが初期化されません。最初にコンテキストを使用しようとするとEFが実行されます。あなたはそれをやってみましたか? – DavidG
@DavidGが最初にコンテキストを使用しようとすると次のようなエラーが表示される:「データベースが作成されてから、 'flagen'コンテキストをサポートするモデルが変更されました。 .com/fwlink /?LinkId = 238269)。 " – Alex
これは別の質問です... – DavidG