2009-06-18 14 views
0

私はいくつかの値(ID)を持つテーブルを持っていますが、結果が得られたときにはちょうどint IDが得られましたが、例えば、数字が1の場合、文字列 "Avaible"を入れたい場合は、2 "Not avaible"のN層環境で、これをModelで実行する必要があります。これを実行するには、私は文字列を投影する別のクラスを宣言しなければならない、または私は辞書、キー - >値のようなものを使用する必要があります。LINQ to SQLとデータ投影、MVC

あなたが製品のステータスを格納する別のテーブルを必要とするLINQ to SQLのを使用している場合は、今私はちょうどこの

return from t in db.products where t.productID==productID select t; 

答えて

1

を持っている:

Table Name: Product Status 
Fields:  ProductStatusID int Indentity Primary Key 
      ProductStatus  nvarchar(50) 

はあなたの製品テーブルにフィールドを追加します。

Field to Add: ProductStatusID int 

新しいテーブルにステータスを追加し、各製品のProductStatusIDをapproに設定します優先ステータスID。

2つのProductStatusIDフィールドを接続する制約を追加します。最も簡単な方法は、SQL Server Management Studio Expressでダイアグラムを作成し、両方のテーブルをダイアグラムにドラッグし、ProductStatusテーブルのProductStatusテーブルをProductsテーブルにドラッグし、開いたダイアログボックスでOKをクリックすることです。

Linq to SQLデータクラスを再構築します。これを行うには、DBMLファイルを削除して再作成し、テーブルをデザイナに再度ドラッグします。

あなたのDataContextオブジェクトから製品オブジェクト(p)を取得する場合、あなたは今、この表示されます:SQLに

p.ProductStatus <-- The text description of the product's status. 

LINQのは、あなたのProductStatusテーブルに到達し、適切なステータスの説明を検索します。