【问题标题】:Entity framework : [Set all the entities with internal access specifier]实体框架:[使用内部访问说明符设置所有实体]
【发布时间】:2011-02-24 15:29:30
【问题描述】:

由于我的应用程序,我需要将我的业务实体与 EF4 创建的实体分开。我需要将实体限制为仅访问从它们被翻译(使用翻译器)到在业务和服务层共享的业务实体的存储库。我想通过将它们指定为内部来限制它们。现在我的应用程序中有 40 多个实体,因此手动将它们设置为内部是一项艰巨的工作。在其中一个论坛中,建议使用 T4 模板的答案。但即使是那些从实体框架访问说明符中读取的模板。当我尝试手动尝试将所有属性和类访问说明符指定为内部时,它给我一个错误,说实体集也应该设置为内部,但没有相同的选项。 我正在使用 VS 2010 和 Entity Framework 4。有什么建议吗???

【问题讨论】:

    标签: entity-framework access-modifiers


    【解决方案1】:

    单击 DataModel.edmx 的白色背景。在属性部分中查找“实体容器访问”并将其更改为内部。

    【讨论】:

      【解决方案2】:

      很难用正则表达式进行搜索和替换?右键单击您的 EDMX,以 XML 格式打开,然后按 Ctrl+H。

      一个示例搜索字符串是:

      \<EntityType:b{.+}\>
      

      一个示例替换字符串是:

      \<EntityType \1 a:TypeAccess="Private" xmlns:a="http://schemas.microsoft.com/ado/2006/04/codegeneration" \>
      

      为简单起见,我没有检测到现有的TypeAccess。您可以根据需要使正则表达式变得复杂。

      您必须选中该框以告诉 VS 使用正则表达式。

      【讨论】:

      • 只要将任何实体定义为公共或默认访问说明符,就不会提及任何属性。仅当访问说明符更改时,才会添加属性。所以搜索和替换也行不通
      • 当然可以。搜索还没有可见性说明符的名称。您可以使用正则表达式和捕获组来执行此操作。或者,如果您对此更满意,请使用 XSLT。
      • 你能举个正则表达式的例子吗?
      • 嗯,好的,我添加了一个正则表达式示例。网络上到处都是正则表达式的例子,你知道....
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-14
      • 1970-01-01
      • 2011-08-30
      相关资源
      最近更新 更多