Как добавить атрибуты wcf в шаблон poco, который применим в сложном типе?

Я использую инструкции из раздела Добавление атрибутов [DataMember] [DataContract] в шаблон POCO Entity Framework

Сначала это сработало, все мои сложные типы генерируются с атрибутом wcf [DataContract] [DataMember]. И потом, когда я регенерирую, я не знаю, почему у всех моих сложных типов нет [DataContract] [DataMember]. Только сущности имеют [DataContract] [DataMember]

[DataContract]
<#=Accessibility.ForType(entity)#> <#=code.SpaceAfter(code.AbstractOption(entity))#>partial class <#=code.Escape(entity)#><#=code.StringBefore(" : ", code.Escape(entity.BaseType))#>
{
<#
    region.Begin("Primitive Properties");

    foreach (EdmProperty edmProperty in entity.Properties.Where(p => p.TypeUsage.EdmType is PrimitiveType && p.DeclaringType == entity))
    {
        bool isForeignKey = entity.NavigationProperties.Any(np=>np.GetDependentProperties().Contains(edmProperty));
        bool isDefaultValueDefinedInModel = (edmProperty.DefaultValue != null);
        bool generateAutomaticProperty = false;



#>

    [DataMember]
    <#=PropertyVirtualModifier(Accessibility.ForProperty(edmProperty))#> <#=code.Escape(edmProperty.TypeUsage)#> <#=code.Escape(edmProperty)#>
    {









//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated from a template.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Runtime.Serialization;
<#=String.Join(String.Empty, extraUsings.Select(u => "using " + u + ";" + Environment.NewLine).ToArray())#>
<#+
    fileManager.EndBlock();
}

1 ответ

Вы пробовали со следующим расширением?
Это для EF5 и VS 2012, но есть также эквивалент для EF 4.x.

Это позволяет генерировать POCO, уже украшенные атрибутами WCF, без необходимости настраивать шаблон.

Другие вопросы по тегам