LINQ to SQL和Data Projection,MVC

时间:2009-06-18 02:39:35

标签: asp.net-mvc linq projection

我有一些带有一些值(ID)的表,当然,当我得到结果时,我只得到了int ID,但我想让它更加用户友好,例如当它的数字为1时,我想要把字符串“Avaible”,当它的2“Not avaible”,我在N层环境中,我需要在模型上完成这个,最好的方法来完成这个,我必须声明另一个类来进行项目字符串,或者我必须使用像字典一样的东西,键 - >值。

现在我就是这个

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

1 个答案:

答案 0 :(得分:1)

如果您使用Linq to SQL,则需要另一个表来包含产品状态:

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

在Products Table中添加一个字段:

Field to Add:  ProductStatusID    int

在新表中添加一些状态,并将每个产品的ProductStatusID设置为适当的状态ID。

添加将两个ProductStatusID字段连接在一起的约束。最简单的方法是在SQL Server Management Studio Express中创建一个图表,将两个表格拖到图表上,然后将ProductStatusID字段从ProductStatus表拖到Products表格中,然后在打开的对话框上单击“确定”。 p>

将Linq重建为SQL数据类。您可以通过删除并重新创建DBML文件,然后再将表拖到设计器中来完成此操作。

当您从dataContext对象获得产品对象(p)时,您现在应该看到:

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

Linq to SQL将进入您的ProductStatus表,并查找相应的状态说明。