2013-08-21 32 views
0

我使用模型設計器的Visual Studio到生成我的對象類。現在我想通過繼承和getter/setter更改來調整生成的類。在Visual Studio中調整爲WPF生成的模型第一代碼

如果模型設計,例如已經創建的類瀏覽器:

public partial class Browser 
{ 
    public Browser(){}  
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

我想生成的代碼調整到

public partial class Browser : ValidatableModel, IFormattable 
{ 
    public string name; 


    public Browser(){ name = "" }  
    public Guid Id { get; private set; } 
    public string Name 
    { 
     get { return name; } 
     set { SetPropertyAndValidate(ref name, value); } 
    } 
} 

我使用的是實現了WPF應用程序框架數據庫以另一種方式比我想要的。

您是否知道該解決方案或任何其他方法在WPF中使用Model First方法?我認爲必須有一個。

回答

0

您不應該更改生成的代碼;任何對你的模型的更新都會將它們抹去。您需要更改模型,然後將這些更改推送到數據庫。

自定義getter/setter可以在部分類中實現。你新生成的代碼應該是這樣的:

public partial class Browser 
{ 
    public string name; 


    public Browser(){ }  
    public Guid Id { get; set; } 
    public string Name {get; set;} 
} 

然後添加一個部分類這樣的:

public partial class Browser : ValidatableModel, IFormattable 
{ 
    public string name; 

    public override Browser(){ name = "" }  
    public override Guid Id { get; private set; } 
    public override string Name 
    { 
     get { return name; } 
     set { SetPropertyAndValidate(ref name, value); } 
    } 
} 
+0

不能做到這一點,因爲編譯器說:「瀏覽器」已經包含了一個定義「Id」和「Name」。你知道另一種方式嗎? – 10ff

+0

不知道這是否會工作或因此。這值得一試。我知道做這樣的事情的唯一方法是創建基本上是實體類副本的類,然後在保存到數據庫之前執行復雜的映射回實體。因此檢索實體 - >映射到對象。保存:取對象 - >映射到實體 - >保存。我不建議這樣做,因爲那時你必須弄清楚如何確定一個「對象」是否被修改,並處理你用實體框架得到的所有狀態。 –

相關問題