我希望在从数据库生成或更新.edmx时,查看是否可以将扩展属性作为EF 4.0中实体的一部分。我还想看一个在T4模板中从.edmx运行存储过程(函数)的例子,因为我有一个返回扩展Prop值的过程。
由于
答案 0 :(得分:2)
所以,请记住以下几点:
一般的想法是,您可以使用自己的工具来读取扩展属性并更改EDMX XML。
您将向SSDL添加“注释”(在EDMX中存储元数据)元素。这些Annotation值将基于DB中相对实体的扩展属性。
稍后,当T4执行时,T4根据EDMX元素接收元数据集合。此元数据将包含您之前在此处编写的注释。几乎任何元素都可以有一个或多个注释。然后,您可以将自定义代码添加到T4模板,以处理基于扩展属性的注释。设计人员不会显示注释,也不能在设计器中对它们进行操作,但它应该保留它们(如果它们存在于EDMX中,则不会覆盖它们。)
当然,如果设计人员可扩展,或者即使您可以使用与设计人员相关的代码,这也会容易得多。现在,事实并非如此。 EF的大多数部分正在转向开源,但设计师仍然没有(尚未)。如果设计师进入开源,那么你可能会做出改变以开始使用它 - 并且考虑到社区一直在要求这种功能,我想社区将改变源代码以实现它。在此之前,您必须手动编辑EDMX或编写一些工具来为您完成。