2011-08-28 65 views
0

我使用的指令從Adding [DataMember] [DataContract] attributes in Entity Framework POCO Template如何在適用於複雜類型的poco模板中添加wcf屬性?

起初它的工作,我所有的複雜類型都與WCF歸因[DataContract] [數據成員]產生。然後當我重新生成時,我不知道爲什麼我的所有複雜類型都沒有[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(); 
} 
+0

你可以發佈你的代碼,也可以回到它工作的地步嗎? –

+0

我編輯了我的問題併發布了我的代碼。我試圖回到它的工作,但我不能。我甚至試圖刪除t4模板並重新執行它,但它不起作用。 – qme

+0

請修改您的問題到合理的長度。只發布相關代碼。 –

回答

0

您是否試過以下擴展名?
適用於EF5和VS 2012,但EF 4.x也有同等效果。

enter image description here

它允許生成已經波蘇斯裝飾,而無需自定義模板,WCF屬性。

相關問題