【发布时间】:2014-06-05 11:26:50
【问题描述】:
我有一个应用程序,它有一个服务器端部分和一个客户端部分。服务器端部分使用 WebApi2 和 EF6 实现,并使用 Json 和 Protobuf 作为序列化程序。这就是为什么我使用 [DataMember] 作为模型属性的属性。这里我需要将订单放入属性 [DataMember(Order = number)] 因为 Protobuf 序列化器。
从我的服务器端模型(codefirst)中,我生成了一个包含模型信息的 edmx 文件。在客户端,我使用 edmx 文件的 t4 模板生成这些模型。在我使用 Protobuf 之前,我只是将 DataMember 属性放在 t4 模板中的每个属性的顶部,效果很好。但是现在我必须使用与服务器上相同的订单,以便它仍然可以与 Protobuf 一起使用。这意味着我必须读取 edmx 中的 DataMember 属性并找到 Order 值。但我就是无法读取属性。
我试图阅读
edmProperty.TypeUsage.Facets
以及此对象的其他一些属性。我还在谷歌上搜索并查看了一些关于 t4 模板的示例项目。但没有运气。
那么如何读取属性的顺序呢?
MyServerModel
{
[DataMember(Order=1)] //this number of the order is what I'm looking for
MyProperty{get;set;}
}
现在使用 T4 的魔力并在 edmx 文件的帮助下生成以下内容。
MyClientModel
{
[DataMember(Order=1)] //I want to generate this Attribute with the t4 template from
//the edmx file
MyProperty{get;set;}
}
【问题讨论】:
标签: attributes ef-code-first t4 protobuf-net datamember