2013-10-27 52 views
2

我试图EF使用代码优先的方法,但与现有的数据库。搜索后,我发现要做的重要事情是将我的上下文的初始化程序设置为nullSetInitializer<>。现在在大多数样本中,我发现他们使用static修饰符声明MyDbContext构造函数。检查this SO answer
那么声明static构造函数有什么意义呢?在EF代码中的静态构造函数首先使用

回答

3

静态构造函数在任何其他构造函数之前以及访问任何静态成员之前自动执行。 它们仅在每个AppDomain中调用一次,因此可用于初始化静态,如调用数据库类型的静态SetInitializer方法。

+0

所以它不需要**使用静态constructer ..它只是更好的方式来做到这一点? –

+0

对,Entity Framework如何调用SetInitializer并不重要,只要确保在上下文之前调用它就可以了,如果需要更改默认初始化程序。如果您不需要更改CreateDatabaseIfNotExists的默认值,则根本不需要调用它。 –