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

Entity framework 使用T4模板从EDMX生成SQL Server视图,entity-framework,ado.net-entity-data-model,Entity Framework,Ado.net Entity Data Model,我使用的是一个遗留数据库,我无法轻松创建实体模型,因为它使用的扩展表具有有效的复合键,EF只支持将一个实体映射到多个表的单列键 因此,我决定在遗留表(不能触摸)的顶部创建可更新视图(使用而不是触发器来处理CRUD操作),然后在数据库视图的顶部构建实体模型(使用EF或DevExpress XPO)。这还允许我在select子句中轻松添加子查询,以便在单个查询中检索父记录列表时检索父记录的子计数 但是,我并不特别想为所有视图和触发器手动编写SQL,所以我想我应该使用.EDMX文件和t4模板中定义的数

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

因此,我决定在遗留表(不能触摸)的顶部创建可更新视图(使用
而不是
触发器来处理CRUD操作),然后在数据库视图的顶部构建实体模型(使用EF或DevExpress XPO)。这还允许我在select子句中轻松添加子查询,以便在单个查询中检索父记录列表时检索父记录的子计数

但是,我并不特别想为所有视图和触发器手动编写SQL,所以我想我应该使用
.EDMX
文件和t4模板中定义的数据模型来帮助我生成创建视图和触发器所需的大部分t-SQL。我以为会有一些模板,我可以作为这样做的基础,但似乎这不是那么容易找到

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


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

您可以通过Visual Studio中的NuGet安装它,它提供了Microsoft对您隐藏的EDMX文件中的所有元数据,非常简单,效果非常好。

过去是否真的没有人尝试过从EDMX文件生成视图?从我在web上所能找到的少量信息来看,StorageMappingItemCollection似乎毫无用处,而LinqToEdmx似乎是直接查询EDMX的一个选项或LinqToXml。