2011-01-14 59 views
0

我有一個問題,我希望你可以幫助我。好吧,我會試着描述我的情況:ASP .NET MVC + LINQ生成的類+ DataAnnotations

我創建了數據庫。 添加了表格「訂單」。 然後在dbml文件中生成LINQ Classes。

現在,我已經在控制器中創建動作,並且試圖爲一個或我的Order類屬性(客戶端名稱)設置[DisplayName(「Other name」))]。所以,看看這個:

/核心/ Extansions.cs

namespace SUPNew.Core 
{ 
    public static class Extansions 
    { 

    } 

    [MetadataType(typeof(OrderMetaData))] 
    public partial class Order 
    { 
    } 

    public class OrderMetaData 
    { 
     [DisplayName("ФИО клиента")] 
     public string ClientFIO { get; set; } 
    } 
} 

/瀏覽/經理/ AddOrder.aspx

<legend>Fields</legend> 

    <div class="editor-label"> 
     <%: Html.LabelFor(model => model.ClientFIO) %> 
    </div> 
    <div class="editor-field"> 
     <%: Html.TextBoxFor(model => model.ClientFIO) %> 
     <%: Html.ValidationMessageFor(model => model.ClientFIO) %> 
    </div> 

/控制器/ ManagerController.cs

using SUPNew.Core; 

/型號/ SUPNew.dbml

public partial class Order : INotifyPropertyChanging, INotifyPropertyChanged 
    { 
... 
     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ClientFIO", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] 
     public string ClientFIO 
     { 
      get 
      { 
       return this._ClientFIO; 
      } 
      set 
      { 
       if ((this._ClientFIO != value)) 
       { 
        this.OnClientFIOChanging(value); 
        this.SendPropertyChanging(); 
        this._ClientFIO = value; 
        this.SendPropertyChanged("ClientFIO"); 
        this.OnClientFIOChanged(); 
       } 
      } 
     } 

所以,也許我忘了做什麼?我需要在LabelFor(model => model.ClientFIO)中爲ClientFIO顯示DisplayName,這是我在部分類中選擇的。

Thx尋求幫助。


如果我改變的.dbml文件 - 添加[DisplayName的( 「中文別名」)]是這樣的:

[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ClientFIO", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] 
[DisplayName("Other name")]    
public string ClientFIO 
      { 
       get 
       { 
        return this._ClientFIO; 
       } 
       set 
       { 
        if ((this._ClientFIO != value)) 
        { 
         this.OnClientFIOChanging(value); 
         this.SendPropertyChanging(); 
         this._ClientFIO = value; 
         this.SendPropertyChanged("ClientFIO"); 
         this.OnClientFIOChanged(); 
        } 
       } 
     } 

它的工作原理,但是當我嘗試做局部類 - 不是。有人可以用LINQ生成的類的部分類來幫助我嗎?

+0

http://stackoverflow.com/questions/1871499/metadatatype-問題 – 2011-01-14 21:28:27

回答

0

好吧,當它像在此之前,它無法正常工作:

/Core/Extansions.cs(命名空間SUPNew.Core)(公共部分類訂單)
/型號/ SUPNew的.dbml(命名空間SUPNew.Models)(公共部分類順序)(生成)

然後,當我替換這樣的:

/Models/Extansions.cs(Namespa CE SUPNew.Models)(公共部分類訂單) /Models/SUPNew.dbml(命名空間SUPNew.Models)(公共部分類訂單)(生成)

它開始工作。但是,問題在哪裏?我使用了所有在任何地方使用並導入View.aspx。

我需要像在第一個例子中的工作:

/Core/Extansions.cs(命名空間SUPNew。芯)(公共部分類訂單)
/Models/SUPNew.dbml(命名空間SUPNew.Models)(公共部分類順序)(生成)