我正在使用一个无法轻松创建实体模型的旧数据库,因为它使用具有有效复合键的扩展表,而 EF 仅支持将一个实体映射到多个表的单列键。
所以,我决定做的是INSTEAD OF
在遗留表(无法触及)的顶部创建可更新的视图(使用触发器来处理 CRUD 操作),然后构建我的实体模型(使用 EF 或 DevExpress XPO)数据库视图的顶部。这也将允许我在单个查询中检索父记录列表时轻松地在 select 子句中添加子查询以检索父记录的子计数。
但是,我并不是特别想为所有视图和触发器手动编写 SQL,所以我想我会使用.EDMX
文件中定义的数据模型和 t4 模板来帮助我生成创建所需的大量 T-SQL视图和触发器。我认为会有一些模板可以用作这样做的基础,但似乎并不那么容易找到。
有人可以建议一个 t4 模板,我可以将其用作从.EDMX
. 或者,任何人都可以建议如何使用StorageMappingItemCollection
从 EDMX 文件中检索映射信息。我知道有些人说显然你不能使用它,或者他们只使用 Linq to Xml,但我认为应该可以使用StorageMappingItemCollection
该类作为强类型类来访问这些数据。
任何关于我如何StorageMappingItemCollection
用来访问映射信息的示例都会非常有帮助。谢谢。