2011-01-14 7 views
0

私は問題があり、私はそれを手伝ってくれることを願っています。さて、私の状況を説明しようとします:ASP .NET MVC + LINQ生成クラス+ DataAnnotations

私はデータベースを作成しました。 テーブル "オーダー"を追加しました。 次に、dbmlファイルでLINQクラスを生成しました。

コントローラでアクションを作成しましたが、私は[DisplayName( "Other name")]を1つまたは注文クラスプロパティ(クライアント名)に設定しようとしています。だから、これを見て:

/コア/ 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ヘルプ。


私はこのように、[表示名( "OtherNameを")]の追加.dbmlファイル - 変更した場合:

[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-問題 –

+0

動作しません。アップ:( – FSou1

答えて

0

[OK]を、それはこのようなものだったとき、それが動作していなかったの前に:

/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)(パブリック部分クラス順)(生成)