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管理的,我对此没有完全控制权。
有谁知道如何实现这一目标?
非常感谢,
没有找到相关结果
已邀请:
1 个回复
笛驮型迸
您可以使用一些默认的实现,例如DropCreateDatabaseIfModelChanges和DropCreateDatabaseAlways。但是,如果您不会生成任何数据库或表,则只需确保未设置或继承自Initializer,就可以对现有数据库使用该模型。 Scot Gu的好文章