.net EDM设计器如何从SSDL数据生成CSDL和MSL数据?

.net EDM设计器如何从SSDL数据生成CSDL和MSL数据?,.net,entity-framework,.net,Entity Framework,我正在尝试编写一个工具,修改edmx文件以添加SQL Server同义词引用的表。我很好奇设计师已经使用的代码是否对我有用 更准确地说,我希望避免猜测CSDL中使用的.NET属性类型与SSDL中的存储提供程序(SQL Server 2008)属性类型相对应。SSDL似乎使用直接的SQL Server数据类型,因此我相信我自己生成的SSDL将被EDM设计师接受。我希望至少对我生成的任何相应的CSDL以及所需的MSL都能被设计者接受有一些信心 我的另一个问题是。我正试图设计一种方法,将一个以a为别名

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

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


我的另一个问题是。我正试图设计一种方法,将一个以a为别名的表添加到EDMX文件中。

EDMX文件由几个部分组成,CSDL部分描述了概念模型(类、属性、函数导入等)。SSDL部分描述了存储模型(表/视图、列、过程等)。MSL部分描述CSDL和SSDL对象之间的映射。EDMX中还有一个可选部分,用于描述设计器的图表布局,并包含与设计器相关的其他设置。可在MSDN上获取,网址为:

或者,我有一个包装器库,它在EDMX周围添加了一个对象模型,使创建、读取和更新EDMX文件更加容易:

谢谢@KristoferA,你的图书馆看起来很有趣,但我还没有准备好为这个爱好项目申请付费许可证。恐怕我之前没有把问题说清楚。我了解EDMX文件的所有三个部分,正在寻找一种方法来模拟Visual Studio如何从数据库生成EDMX数据。好的,明白了。除了Visual Studio designer之外,Microsoft还有两个工具:edmgen.exe和edmgen2.exe。不幸的是,它们是关闭的,无法轻松扩展,但是您可以使用edmgen来做一些事情,将它在数据库中使用的目录视图替换为同时执行同义词查找的新视图。也许不太理想,但可以工作。顺便说一句,我正在考虑将SQL server同义词支持添加到我的外接程序中。可能会派上用场…哦,还有一个潜在的选择:看看微软和第三方提供的各种T4模板。VS2010附带了T4模板,用于从CSDL生成SSDL+MSL,可能还有一些东西可以从SSDL转换为CSDL。再次感谢,@KristoferA。我在中通过docs为您的广告找到了edmgen2,尽管生成的edmx使用了一个封闭的库,但我可以扩展edmgen2的源代码,为同义词的基表生成所需的edmx,然后重命名ssdl元素以指向原型。我当然也会查看T4选项。T4是可爱的东西。