2016-05-24 63 views
1

我在所有POCO類中使用EF 6.1.3我有一個採用HTML值的公共字段。我想爲所有這些POCO類添加一個公共屬性,這些屬性將去除HTML並保存乾淨的字符串。實體框架數據庫首先爲生成的所有POCO類添加一個自定義屬性

當前POCO類

public partial class Category 
{ 
    public string Name {get; set;} 
    public string Details {get; set;} 
} 

我尋找產生

public partial class Category 
{ 
    public string Name {get; set;} 
    public string Details {get; set;} 
    public string CleanDetails 
    { 
     get{ return StripHtml(this.Details); } 
    } 
} 

而且我不應該每次我更新的實體模型

public string CleanDetails 
    { 
     get{ return StripHtml(this.Details); } 
    } 
時間失去這種自定義屬性

努力的在上Mode.Context.tt作如下改變,但不實用

public string EntityClassOpening(EntityType entity) 
    { 
     return string.Format(
      CultureInfo.InvariantCulture, 
      "{0} {1}partial class {2}{3}", 
      Accessibility.ForType(entity), 
      _code.SpaceAfter(_code.AbstractOption(entity)), 
      _code.Escape(entity), 
      _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType) ?? "BaseEntity")); 
    } 

我看到有一個方法來創建所有那些我需要這個自定義屬性部分類。但是我需要大約40個班級,未來可能會有更多班級,我希望它能夠像更多自動化方法,然後手動創建40個部分班級。

回答

0

我產生在我的數據庫項目的另一個文件夾,我的自我,而在另一個部分類。新增CSharp文件添加論文屬性到該文件夾​​並插入文件名相同的與你的類(A類)和變更名稱空間太

public partial class Category 
{ 
    public string CleanDetails 
    { 
     get{ return StripHtml(this.Details); } 
    } 
} 
+0

這正是我不想做的。我需要約40個POCO類中的這個自定義屬性,而且這個數量可能會增加。所以我想知道是否有更好的自動化方式。 – HaBo

1

有可能到implement inheritance in EF6。你可以用你所有的共享方法和屬性創建一個基類,然後如果你讓所有的實體類型都繼承它(見鏈接),你就會有你以後的行爲。唯一的問題是如果你從你的模型中刪除了一個表,然後從數據庫中重新添加它,你將不得不使它從基類繼承。

相關問題