Pregunta

HI Tengo una tabla con algunos valores (ID) y, por supuesto, cuando obtengo el resultado obtuve solo las ID int, pero quiero ponerlo más fácil de usar, por ejemplo, cuando es el número 1, i quiero poner la cadena '' Disponible '', cuando está 2 '' No disponible '', estoy en un entorno de N niveles y necesito hacer esto en el Modelo, cuál es la mejor manera de lograr esto, tengo que declarar otra clase para proyectar las cadenas, o debo usar algo como un diccionario, Key - > Valor.

ahora mismo solo tengo esto

return from t in db.products where t.productID==productID select t;
¿Fue útil?

Solución

Si está utilizando Linq to SQL, necesita otra tabla para contener el estado del producto:

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

Agregue un campo a su Tabla de productos:

Field to Add:  ProductStatusID    int

Agregue algunos estados a su nueva tabla y establezca el ProductStatusID de cada producto en un ID de estado apropiado.

Agregue una restricción que conecte los dos campos ProductStatusID juntos. La forma más fácil de hacerlo es crear un diagrama en SQL Server Management Studio Express, arrastrar ambas tablas al diagrama y luego arrastrar el campo ProductStatusID de la tabla ProductStatus a la tabla Products, y hacer clic en Aceptar en el cuadro de diálogo que se abre.

Reconstruya sus clases de datos Linq a SQL. Para ello, elimine y vuelva a crear el archivo DBML y arrastre sus tablas al diseñador nuevamente.

Cuando obtiene un objeto de productos (p) de su objeto dataContext, ahora debería ver esto:

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

Linq to SQL llegará a su tabla ProductStatus y buscará la descripción de estado apropiada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top