使用T4模板从EDMX生成SQL Server视图

时间:2013-09-19 00:24:46

标签: entity-framework ado.net-entity-data-model

我正在使用遗留数据库,我无法轻松创建实体模型,因为它使用的扩展表包含有效的复合键,而EF仅支持单列键将一个实体映射到多个表。

所以,我决定做的是创建可更新的视图(使用INSTEAD OF触发器来处理CRUD操作)在遗留表的顶部(无法触及)然后拥有我的实体模型(或者使用EF或DevExpress XPO)构建在数据库视图之上。这样我还可以在select子句中轻松添加子查询,以便在单个查询中检索父记录列表时检索父记录的子计数。

但是,我并不特别想为所有视图和触发器手动编写SQL,所以我想我会使用.EDMX文件和t4模板中定义的数据模型来帮助我生成大量的创建视图和触发器所需的T-SQL。我认为可以使用一些模板作为执行此操作的基础,但似乎并不容易找到。

有人可以建议我使用t4模板作为从.EDMX检索映射的基础。或者,任何人都可以建议如何使用StorageMappingItemCollection从EDMX文件中检索映射信息。我知道有些人说过,显然你不能使用它或者他们只是使用Linq到Xml,但我认为应该可以使用StorageMappingItemCollection类作为强类型类来访问这个数据。

有关如何使用StorageMappingItemCollection访问映射信息的任何示例都非常有用。感谢。

1 个答案:

答案 0 :(得分:0)

请参阅http://brewdawg.github.io/Tiraggo.Edmx/,您可以在Visual Studio中通过NuGet安装它,它可以提供Microsoft隐藏的EDMX文件中的所有元数据,非常简单,效果很好。