实体框架通过变量获取实体

时间:2012-12-16 01:13:39

标签: entity-framework-4.3

我有一个填充了表名的列表框。我希望能够单击列表框中的一行并返回该表中的所有记录并绑定到datagridview。使用优秀的老式SQL这是一块蛋糕。尝试对Entity Framework 4.3.1做同样的事情是另一回事。

例如,有没有办法在下面的代码中将“get_picklist_names_v”表示为变量?

static class EfHelper
{
    public static EfEntities CreateContext()
    {
        EfEntities context = new EfEntities();
        return context;
    }
}

using (var context = EfHelper.CreateContext())
{
    IList list = context.get_picklist_names_v.ToList();

    lboPicklist.DataSource = list;
    lboPicklist.DisplayMember = "name";
}

2 个答案:

答案 0 :(得分:0)

实体框架使用类型来表示SQL内容并尽力而为,因此您不必为每种服务器风格(Oracle,SQL Server,MySQL等)编写sql。这就是ORM的作用......

如果您习惯使用泛型类型,那么使用Entity Framework就可以做到这一点。

这不是你想要的,但也许你可以从以下文章中找到一些提示:

Repository Pattern with Entity Framework

答案 1 :(得分:0)

实体框架不是实现这一目标的最佳工具。您可以尝试Entity Sql,但问题是,为了以动态方式使用它,您必须在IEnumerable<DbDataRecord>中捕获结果。 DataGridView不会这样显示。

没有什么比通过TableAdapter和sql语句填充DataSet更方便了。如果我是你,我会坚持到那。