entity-framework - 不同项目中的Entity Framework 5和Visual Studio 2012 POCO类

标签 entity-framework visual-studio-2012

在VS 2010和EF 4.4中,当在Entity Framework中使用DBContext生成器时,便能够移动和编辑.tt文件,这样POCO可以位于与DBContext文件不同的项目中。

有关我在说什么的示例,请参见HereHere

在VS2012 / EF5中,这似乎是不可能的。 POCO类在EDMX文件下作为子项目生成。无法从Visual Studio中复制文件。从资源管理器移动文件无济于事,因为在编译时会重新创建您移动的文件。

我在这里缺少基本的东西吗?

我没有在EF5中使用任何代码生成项(而我在EF4.x中使用过)。这有什么区别吗?

最佳答案

在Visual Studio 2012中,当您添加ADO.NET实体数据模型(* .edmx)时,它包括用于上下文和模型类的T4模板,作为EDMX文件的子项。例如,如果添加MyModel.edmx,它将具有4个子项,如下所示:

  • MyModel.Context.tt
  • MyModel.Designer.cs(在C#项目中)
  • MyModel.edmx.diagram
  • MyModel.tt

  • MyModel.tt生成POCO实体作为子项。要在单独的项目中生成实体,请执行以下步骤:
  • 创建一个单独的类项目。
  • 添加新项目,选择“EF 5.x DbContext Generator”模板。这将创建* .tt文件。例如MyModel.tt。
  • 如下编辑模板文件:
    const string inputFile = @"MyModel.edmx"; // old value (remove)
    const string inputFile = @"..\MyOtherProjectName\MyModel.edmx"; // new value
    
  • 在另一个项目中,展开EDMX文件,然后右键单击MyModel.tt,选择Delete。

  • 而已。你完成了。现在,您将模型和上下文放在一个项目中,将实体放在另一个项目中。

    关于entity-framework - 不同项目中的Entity Framework 5和Visual Studio 2012 POCO类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12375090/

    相关文章:

    c# - Entity Framework - 在一个查询中获取 'fake' 导航属性

    entity-framework - 模型中具有 POCO 模板和 FK 的 Entity Framework - Null Ref 异常

    c# - 在单个异步查询 Entity Framework 中同时包含 COUNT(*) 和 Sum(X)

    c# - Foreach Razor 内部的 Foreach

    opencv - 链接 : fatal error LNK1104: cannot open file '.obj'

    c# - Visual Studio 在解决方案资源管理器中向项目名称添加一个数字

    database - 如何使用 localdb 在 Code First 中查看数据库图表

    c# - EF过滤/搜索多个词

    javascript - 在标签附近打开的弹出窗口的正式名称是什么 [包括图片]

    c++ - 如何将 Intel C++ 编译器 2015 与全新安装的 Visual Studio 2012 集成