0
我有一个现有的数据库。为了摆脱的“语境已经改变,因为数据库创建”与现有数据库发生异常,我称之为Global.asax.cs中的的Application_Start()以下的建议在我读:实体框架与现有数据库 - 最新方法?
Database.SetInitializer<SomeEntities>(null);
的问题是,我需要添加一行的Application_Start对于具有一些问题,每个现有的实体: -
- 如果我添加一个新entitity现有表,然后我需要记住在Application_Start()中调用它。问题是Application_Start从我添加的类中删除,所以我倾向于忘记这个,这意味着我继续触发异常。
- 实体上的操作从它正在处理的实体代码中移除,因此通过查看初始化程序为空的实体类并不明显。这是我一直遗忘的原因之一 - 因为我没有在我现有的课程中看到它。同样,如果我删除一个实体并从我的解决方案中删除该类,我需要记住要在Application_Start中进行挖掘。
- 启动代码与Database.SetIntializer()调用混杂在一起。
理想情况下,我想在实体类(从DBContext派生)的构造函数中调用此函数。我尝试以下,但它没有工作:
Database.SetInitializer(false);
所以,我的问题是,什么是设置实体类(即从的DbContext派生类)中的初始化,而不是在的Application_Start的最佳途径。也许是调用Database.SetInitializer的Entities类中的静态构造函数?
如果Database.SetInitializer(假)在构造函数是正确的做法,然后我将与它坚持下去,看看我错了。
感谢,静态构造函数是什么,我会去用,但不知何故,我错过了,表明这是最好的方式的引用。 – acarlon