Tom*_*leu 13 entity-framework entity-framework-5 ef-model-first
首先在Entity Framework 5模型中,由于生成类文件的方式,似乎存在一些重大更改(不再生成代码,但是T4模板)
2个例子:
是否有更多的突破性变化?他们的解决方案是什么?
BG1*_*100 34
从Entity Framework 5中的模型生成的默认代码现在继承DbContext而不是ObjectContext.
这仍然实现了IDisposable,但如果您从类似于此的代码行中收到错误:
using (var mymodel = new MyModelContext()) { ... }
Run Code Online (Sandbox Code Playgroud)
...抱怨没有实现IDisposable,那么您的问题很可能是您的模型在引用EF5的单独程序集中定义,并且您没有为项目添加EF5引用.
正如Ladislav Mrnka在他的回答中已经提到的,如果你想将连接字符串传递给构造函数,你必须手动创建自己的构造函数来执行此操作.
如果要将实体框架切换回较旧的生成代码样式,这将自动生成您正在寻找的构造函数,请按照以下步骤操作:
生成的上下文文件不再实现IDisposable
IDisposable仍然由父上下文类型实现.生成的类型仍然是一次性的.
没有一个构造函数不再需要连接字符串
它现在使用约定来获取连接字符串,但是您可以将自己的构造函数添加到模板或上下文的部分类部分.
是否有更多的突破性变化?他们的解决方案是什么?
这是一个彻底的改变,因为它使用不同的API - DbContext API而不是ObjectContext API,这意味着不同的类型,不同的方法,POCO实体等.如果你想回到原始代码生成,你必须删除那些T4模板并启用代码生成如.Designer.cs文件中所述,但目前推荐的方法是使用POCO和DbContext API.
| 归档时间: |
|
| 查看次数: |
8193 次 |
| 最近记录: |