我有一个mvc 4应用程序,它首先是实体框架数据库。因此,许多类都是通过EF基于数据库表生成的。
目前,我创建了一种方法来从表中检索数据并将其显示在下拉列表中,该工作正常。但是,我想将该方法修改为泛型类型方法,并将类类型作为方法参数传递,我希望c#代码在数据库中查找映射表并检索数据。
以下是我修改过的方法 谢谢你的帮助!
public static SelectList FromDbTableToSelectList<T>() where T: class
{
var db = new TableEntities();
//find the mapping database table
Dictionary<Guid, string> dic = db.MappingTable.ToDictionary(v => v.tableColumn1, v => v.tableColumn2);
return new SelectList(dic, "Key", "Value");
}
答案 0 :(得分:0)
我不明白你的代码是做什么的。但是,有一个技巧可以找到实体的映射表名称(EF术语表中的Entity Set Name
)。
假设您的数据库中有一个名为Products
的表。如果在选中Pluralize and singularize
选项的情况下创建模型,EF将创建名为Product
的实体类。
然后,每当执行查询时,EF命名约定都认为您的表名是dbo.Products
。这是一般规则 - 实际上是命名约定。
另一方面,如果取消选中Pluralize and Singularize
选项,EF会为您创建一个名为Products
的实体类,在这种情况下,该类具有相同的名称。
因此,根据P&S
选项的选择,您可以从实体名称推断表名称,并且您不需要任何代码...