EF Code First现有数据库

| 首先使用EF 4.1代码,我想停止EF从模型创建数据库。据我了解,如果您传递Connectionstring名称,它将使用该连接字符串中的现有数据库。但是,如果数据库不存在,则它将创建数据库,所有表都将构成模型。
  <connectionStrings>
<add name=\"DiaryContext\" connectionString=\"Data Source=.;Initial Catalog=Diary;Integrated Security=SSPI;\" providerName=\"System.Data.SqlClient\"/>
        public MyDiaryContext() : 
        base(\"name=DiaryContext\")
    {
        this.Configuration.LazyLoadingEnabled = true;
        this.Configuration.ProxyCreationEnabled = false;
    }
在上面的示例中,其行为如下: (1)如果数据库不存在,则它将使用所有表等创建数据库。 (2)如果数据库存在并且没有表,则不会创建新表 (3)如果我添加新模型的EF代码,则它将不会在数据库中创建新表。 我对2和3感到满意,但是在(1)的情况下,如果数据库不存在,那么我希望它引发异常,而不是创建db和表。 就我而言,数据库是由DBA管理的,我对此没有完全控制权。 有谁知道如何实现这一目标? 非常感谢,     
已邀请:
        首先使用EF代码时,您需要设置一个数据库初始化程序,例如,在我的DataContext的构造函数中进行设置
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<WebContext>());
您可以使用一些默认的实现,例如DropCreateDatabaseIfModelChanges和DropCreateDatabaseAlways。但是,如果您不会生成任何数据库或表,则只需确保未设置或继承自Initializer,就可以对现有数据库使用该模型。 Scot Gu的好文章     

要回复问题请先登录注册