【问题标题】:How does the EDM designer generate CSDL and MSL data from SSDL data?EDM 设计人员如何从 SSDL 数据生成 CSDL 和 MSL 数据?
【发布时间】:2010-12-07 20:41:20
【问题描述】:

我正在尝试编写一个工具来修改 edmx 文件以添加由 SQL Server 同义词引用的表。我很好奇设计师已经使用的任何代码是否对我可用。

更准确地说,我想避免猜测要在 CSDL 中使用哪些 .NET 属性类型来对应 SSDL 中的存储提供程序 (SQL Server 2008) 属性类型。 SSDL 似乎使用直接的 SQL Server 数据类型,因此我有信心自己生成的 SSDL 将被 EDM 设计人员接受。我希望至少有一些信心,我生成的任何相应的 CSDL 以及所需的 MSL 也将被设计人员接受。

我的另一个问题,Entity Framework and SQL Server Synonyms,指的是。我正在尝试设计一种方法来将由 synonym 别名的表添加到 EDMX 文件中。

【问题讨论】:

    标签: .net entity-framework


    【解决方案1】:

    EDMX 文件由几个部分组成,CSDL 部分描述概念模型(类、属性、函数导入等)。 SSDL 部分描述了存储模型(表/视图、列、过程等)。 MSL 部分描述了 CSDL 和 SSDL 对象之间的映射。 EDMX 中还有一个可选部分,用于描述设计者的图表布局并包含与设计者相关的其他设置。 specification for the CSDL, SSDL, and MSL 可在 MSDN 上获取:http://msdn.microsoft.com/en-us/library/bb399604.aspx

    另外,我有一个包装库,它在 EDMX 周围添加了一个对象模型,可以更轻松地创建、读取和更新 EDMX 文件: http://huagati.blogspot.com/2010/12/creating-or-modifying-entity-framework.html

    【讨论】:

    • 感谢@KristoferA,您的库看起来很有趣,但我还没有准备好为这个爱好项目购买付费许可证。不过,恐怕我之前的问题还不够清楚。我了解 EDMX 文件的所有三个部分,并且正在寻找一种方法来模拟 Visual Studio 如何从数据库生成 EDMX 数据。
    • 好的,知道了。除了 Visual Studio 设计器,微软还有两个工具,edmgen.exe 和 edmgen2.exe。不幸的是,它们已关闭并且无法轻松扩展,但您也许可以通过将数据库中使用的目录视图替换为也进行同义词查找的新目录视图来使用 edmgen 做一些事情。也许不理想,但可以工作。
    • 顺便说一句,我正在考虑将 SQL 服务器同义词支持添加到我的加载项中。可以派上用场...
    • 哦,另一种可能的选择:查看来自 Microsoft 和第 3 方的各种 T4 模板。 VS2010 附带了用于从 CSDL 生成 SSDL+MSL 的 T4 模板,并且可能可以从 SSDL 到 CSDL。
    • 再次感谢@KristoferA。我通过文档为您的插件找到了 edmgen2,虽然 edmx 生成使用封闭库,但我可以扩展 edmgen2 的源代码以生成同义词基表所需的 edmx,然后重命名 ssdl 元素以指向原型.我当然也会检查 T4 选项。 T4 是可爱的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    相关资源
    最近更新 更多