【问题标题】:EF 4.0 to EF 4.2 , DeleteObject Not Found,EF 4.0 到 EF 4.2,未找到 DeleteObject,
【发布时间】:2012-02-23 03:59:46
【问题描述】:

我的原始项目是在 Asp.net MVC 2 中。 我将我的项目转换为 MVC 3 没有问题。

同时,我安装了EntityFramework 4.2。再次没有问题。

当我添加 T4 Generate DBContext 时开始变得复杂。
那就是正确地为我创建 T4 并将我的所有实体生成到他自己的“POCO 类”中。太完美了!。

当我构建我的项目时,我遇到了大约 400 个错误。这是一个例子。

'mvn.Models.DBEntities' 不包含对 'AddToLeaseConditionInfos' 并且没有扩展方法 'AddToLeaseConditionInfos' 接受类型的第一个参数 可以找到“mvn.Models.DBEntities”(您是否缺少使用 指令还是程序集引用?)

正如您在此处看到的,context.AddToLeaseConditionInfos(objCondition);不再起作用了。

对于 DeleteObject 上下文方法也是如此。

context.ConvertionUnits.DeleteObject(MyObjConvertionUnit);

有人有想法。

非常感谢。

【问题讨论】:

  • EF 4.2 只是 EF 4.1,修复了一些错误。它不需要自己的标签。

标签: entity-framework-4 entity-framework-4.1 migration


【解决方案1】:

您之前使用过 ObjectContext API 和默认代码生成器(或 EntityObject T4 模板),但现在您尝试将 DbContext API 与 POCO DbContext T4 Generator 一起使用。这两者完全不兼容,因为它们代表不同的 API。您必须使用与 EFv4 中相同的代码生成方法(这意味着升级几乎不会给您带来任何额外的价值),或者您必须重写当前的数据访问代码以使用新的 API。

【讨论】:

  • 更改为 DBContext API 而非使用默认的 ObjectContext API 是否有任何性能优势。我有 270 个实体,每个实体之间都有很多关系。编译时间很长。我也有很大的查询,这使我的项目对于某些模块或页面非常慢。
  • DbContext API 只是 ObjectContext API 的简化包装,因此理论上性能可能会因为额外的包装代码级别而更差。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 1970-01-01
  • 2019-11-13
  • 1970-01-01
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
相关资源
最近更新 更多