Linq to sql 如何在mvc框架中实现查找表?

Linq to sql 如何在mvc框架中实现查找表?,linq-to-sql,asp.net-mvc-2,lookup,Linq To Sql,Asp.net Mvc 2,Lookup,net MVC2:我的mvc应用程序中有许多下拉列表。首先,我首先为每个表创建一个具有唯一ID和名称的表,并在控制器和视图中引用它们。应用程序变大了,有人建议我使用一个查找表,其中包含lookuptype和lookupvalue作为复合主键,并填充其中DropDownList的所有值。我在互联网上搜索过,mvc使用的唯一方法是每个下拉列表对应一个表!有人能给我解释一下我如何实现它吗?请详细解释一下,因为我完全迷路了。链接到教程也很好。 我正在使用vb.net和linq to sql。假设您的表中

net MVC2:我的mvc应用程序中有许多下拉列表。首先,我首先为每个表创建一个具有唯一ID和名称的表,并在控制器和视图中引用它们。应用程序变大了,有人建议我使用一个查找表,其中包含lookuptype和lookupvalue作为复合主键,并填充其中DropDownList的所有值。我在互联网上搜索过,mvc使用的唯一方法是每个下拉列表对应一个表!有人能给我解释一下我如何实现它吗?请详细解释一下,因为我完全迷路了。链接到教程也很好。
我正在使用vb.net和linq to sql。

假设您的表中有列
ID
Name
Value
。现在,由于只有一个表,该表很可能如下所示:

create table Lookup
(
    LookupID int not null identity
        primary key,
    LookupTypeID int not null
        references LookupType(LookupTypeID),
    Name nvarchar(50) not null,
    Value int not null,
    unique(EnumTypeID, Name)
)
go
此表将确保同一类型内的名称不会冲突

无论如何。当然,您可以有一个类似的应用程序(而不是数据)模型类

public class EnumValue
{
    public int Id { get; set; }

    [Required]
    public string Name { get; set; }

    [Required]
    public int Value { get; set; }
}
因此,每当您获得某一类型的值时,您总是可以生成它们的
IList
,并将它们提供给特定的下拉列表


由于您没有提供任何有价值的数据,此表和类可能会忽略列/属性
,因为根据内部工作方式,可能根本不需要它。但您将最清楚这一点,因为您知道您的应用程序需求。除了这个列/属性之外,只有ID可以完成这个任务。

我实际上使用了一种稍微不同的方法。我创建了一个具有复合主键LookupName和LookupValue的表。然后在datacontext中,我声明了一个将lookupname作为参数的方法,然后带来一个lookupname与此参数匹配的LookupValue列表。在原始表(例如Contact)中,我创建了一个名为status的字段,其中将保存所选值。然后在控制器中,我使用viewdata创建DropDownList

示例:_db表示数据上下文

Viewdata('Status')=新的选择列表(_db.Getlookupname('Status'),'lookupname','lookupname'))

然后在视图中

html.dropdownlist('status')

我还使用与目标表“Contact”中相同的字段名“status”命名了dropdownlist

它工作正常,没有任何复杂性或错误。
谢谢你的帮助。我希望这将有助于其他人

这里有一个关于如何实现通用查找服务的教程


与您所做的类似,但可能更全面一些。

能否在现有表中提供列?它只是一个ID、名称和值吗?谢谢回复。这个问题怎么样?请你看一下好吗?先谢谢你。。。