1

我有一个基于实体框架数据库的 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");
    }
4

1 回答 1

0

我不明白你的代码是做什么的。但是,有一个技巧可以找到Entity Set Name实体的映射表名称(在 EF 词汇表中)。

假设您的数据库中有一个名为Products. 如果您在Pluralize and singularize选中该选项的情况下创建模型,EF 将创建一个名为Product.

然后,每当您执行查询时,EF 命名约定都会认为您的表名是dbo.Products. 这是一般规则——实际上是命名约定。

另一方面,如果您取消选中该Pluralize and Singularize选项,EF 会创建一个为您命名的实体类Products,在这种情况下,表中的类具有相同的名称。

因此,根据选项的P&S选择,您可以从实体名称推断表名称,并且您不需要任何代码......

于 2013-07-22T14:01:12.040 回答