Вопрос

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

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

return from t in db.products where t.productID==productID select t;
Это было полезно?

Решение

Если вы используете 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 и найдет соответствующее описание статуса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top