【问题标题】:Is there a fundamental difference between 'Default' and 'Legacy ObjectContext' Code Generation“默认”和“旧版 ObjectContext”代码生成之间是否存在根本区别
【发布时间】:2014-03-07 17:50:55
【问题描述】:

我有一个最初使用 ef4 构建的实体数据模型,用于我的应用程序。此应用程序广泛使用 C1 studio for Entity Framewaork,因此需要使用 ObjectContext 而不是 DBContext(至少目前是这样)。

此模型最初是在 Visual Studio 2010 中创建的(默认情况下创建对象上下文),然后移植到 Visual Studio 2012 和 EF5.0(在确定了如何创建(和维护对象上下文)默认型号)。

我已经开始考虑将此应用程序移植到 Visual Studio 2013(但暂时保留其使用 EF5.0),默认情况下,实体数据模型基于 dbContext。 Visual Studio Gallery 上提供了一个 EF5.0 实体对象生成器,它允许使用其代码生成策略“Legacy ObjectContext”创建(或可能也更新)实体数据模型。

因此,在对应用程序进行了彻底备份后,我将其移植到 vs 2013 中没有任何问题,直到我从数据库中更新模型(添加了一些我想使用的新存储过程)。在这一点上,我开始在模型中发现一整串构建错误。但是,我可以在 VS 2012 中自行打开数据模型,对其进行更新并构建它,然后在 vs2013 中重新打开整个应用程序而不会出现任何问题,然后再次构建整个应用程序而不会出现问题。

因此,我的问题是,两个版本的 Visual Studio 构建基于 objectContext 的实体数据模型的方式之间是否真的存在根本区别,是否存在我错过配置的 Legacy ObjectContext 生成器的一个方面正确。

我欢迎任何建议或意见。正如我在一开始所说的那样,目前避免使用 ObjectContext 不是一种选择。我希望这会在不久的将来发生变化,但目前还不能。如果这意味着要记住在 vs 2012 中对模型进行调整,那就这样吧。我现在只是好奇。

【问题讨论】:

    标签: vb.net entity-framework visual-studio visual-studio-2012 objectcontext


    【解决方案1】:

    在随 VS2013 提供的 EF6 工具(以及 VS2012 的带外 EF6 工具)中,“默认”选项已重命名为“旧版 ObjectContext”。这样做的原因是,即使在 VS2012 中,“默认”选项也不再是默认选项,因为“无”选项是非常有趣的默认选项。

    为了澄清在 VS2010 和 VS2012 中,“默认”代码生成策略是使用内置代码生成器并生成基于 ObjectContext 上下文和 EntityObject 的实体。 “无”选项根本不会生成代码,以允许添加到项目中的 T4 模板生成代码。在 VS2012 中,“无”选项是默认选项,EF 设计器会将 T4 模板(.tt 文件)添加到您的项目中,从而生成基于 DbContext 的上下文和 POCO 实体。

    在 EF6 工具(即 VS2013 和 VS2012 的带外版本)中,“默认”选项已重命名为 Legacy Object Context”和“None”选项重命名为“T4”。创建 EF6 模型时,“Legacy Object Context”被禁用,因为生成的代码将无效。

    如果您仍然需要/想要拥有基于 ObjectContext 的上下文,那么您可以下载 Visual Studio Gallery 上的 T4 模板来实现这一点。最后,如果在将代码生成策略切换到默认/传统对象上下文后出现错误,请确保删除 edmx 文件的 T4 模板。否则,您将获得一组重复的实体和上下文(一个从 T4 创建,一个从代码生成器创建),这将发生冲突。 您可以在我不久前写的blog post 中找到更多详细信息。

    【讨论】:

    • @Pavel 你的 Enter 键坏了吗?
    • @Jowen - 不知道你在问什么。如果您指的是格式化,您可以编辑回复。
    猜你喜欢
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2014-12-10
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多