LINQ to SQL и проекция данных, MVC - PullRequest
0 голосов
/ 18 июня 2009

HI У меня есть таблица с некоторыми значениями (ID), и, конечно, когда я получаю результат, я получаю только int ID, но я хочу сделать его более удобным для пользователя, например, когда его номер 1, я хочу поместить строку "Avaible", когда ее 2 "Not avaible", im в среду N ярусов, и мне нужно, чтобы это было сделано на модели, каков наилучший способ сделать это, я должен объявить другой класс для проекта строки, или я должен использовать что-то вроде словаря, Ключ -> Значение.

сейчас у меня просто есть

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

1 Ответ

1 голос
/ 18 июня 2009

Если вы используете Linq to SQL, вам нужна другая таблица, которая будет содержать статус продукта:

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

Добавьте поле в таблицу товаров:

Field to Add:  ProductStatusID    int

Добавьте несколько статусов в новую таблицу и установите для ProductStatusID каждого продукта соответствующий идентификатор статуса.

Добавить ограничение, которое соединяет два поля ProductStatusID вместе. Самый простой способ сделать это - создать диаграмму в SQL Server Management Studio Express, перетащить обе таблицы на диаграмму, а затем перетащить поле ProductStatusID из таблицы ProductStatus в таблицу Products и нажать «ОК» в открывшемся диалоговом окне. *

Перестройте ваши классы данных Linq to SQL. Это можно сделать, удалив и заново создав файл DBML и снова перетащив таблицы в конструктор.

Когда вы получаете объект products (p) из вашего объекта dataContext, вы должны увидеть это:

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

Linq to SQL попадет в вашу таблицу ProductStatus и найдет соответствующее описание статуса.

...