gpt4 book ai didi

entity-framework - 提取 SQL Server 扩展属性作为 EF 4.0 实体的一部分或在 T4 模板中运行存储过程

转载 作者:行者123 更新时间:2023-12-04 15:48:16 25 4
gpt4 key购买 nike

我想看看当 .edmx 从数据库生成或更新时,扩展属性是否可以成为 EF 4.0 中实体的一部分。我还希望看到一个从 T4 模板中的 .edmx 运行存储过程(函数)的示例,因为我确实有一个返回扩展 Prop 值的过程。

谢谢

最佳答案

所以,这里有几点需要牢记:

  • 设计器并不是真正可扩展的,但提供者是。这并没有多大帮助,因为编写 EF 提供程序不是在公园里散步。这真的很复杂。
  • 与设计器相关的代码,包括与元数据相关的位,大多是密封的和内部的,您几乎完全无法使用。
  • 但是,EDMX 文件(XML 文件本身)有很好的文档记录:http://msdn.microsoft.com/en-us/data/jj650889
    ...您可以自行修改 XML(手动或通过一些插件或外部实用程序),只要您遵守规范即可。

  • 总体思路是,您可以使用自己的工具来读取扩展属性并更改 EDMX XML。

    您将向 SSDL(在 EDMX 中存储元数据)元素添加“注释”。这些注释值将基于数据库中相关实体的扩展属性。

    稍后,当 T4 执行时,T4 接收基于 EDMX 元素的元数据集合。此元数据将包含您之前在其中编写的注释。几乎任何元素都可以有一个或多个注释。然后,您可以将自定义代码添加到 T4 模板以处理基于您的扩展属性的注释。设计器不会显示注释,您不能在设计器中操作它们,但它应该保留它们(如果它们存在于 EDMX 中,则不会覆盖它们)。

    当然,如果设计器是可扩展的,或者即使与设计器相关的代码可供您使用,这也会容易得多。现在,情况并非如此。 EF 的大部分部分都在转向开源,但设计者仍然不在(目前)。如果设计师进入开源领域,那么您可能可以进行更改以开始使用它 - 鉴于社区不断要求这种功能,我想社区无论如何都会更改源代码以实现它。在此之前,您必须手动编辑 EDMX 或编写一些工具来为您完成。

    关于entity-framework - 提取 SQL Server 扩展属性作为 EF 4.0 实体的一部分或在 T4 模板中运行存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5184101/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com