Entity framework 尝试使用EF/Linq to实体进行动态查询和CRUD操作

Entity framework 尝试使用EF/Linq to实体进行动态查询和CRUD操作,entity-framework,linq-to-entities,Entity Framework,Linq To Entities,按照建议,请在此处重新发布此问题。。。最初发布在msdn论坛上 我正在努力为一些简单的CRUD操作编写一个通用例程,使用EF/Linq to实体。我在ASP.NETC或VB中工作 我看过: 使用GetObjectByKey获取对动态选择的表的引用,但我不需要缓存中的任何内容。我要数据库里的数据。似乎不是这个函数的目的 CRM Dynamic Entities在这里,您可以传递一个表名字符串来进行查询,看起来就像我正在寻找的方法,但我不认为CRM工作必须保持当前状态和/或对未来有多大保证 我研究了

按照建议,请在此处重新发布此问题。。。最初发布在msdn论坛上

我正在努力为一些简单的CRUD操作编写一个通用例程,使用EF/Linq to实体。我在ASP.NETC或VB中工作

我看过:

使用GetObjectByKey获取对动态选择的表的引用,但我不需要缓存中的任何内容。我要数据库里的数据。似乎不是这个函数的目的

CRM Dynamic Entities在这里,您可以传递一个表名字符串来进行查询,看起来就像我正在寻找的方法,但我不认为CRM工作必须保持当前状态和/或对未来有多大保证

我研究了各种钻取名称空间/对象的方法,以便将TableName参数传递到常用的查询语法var query=fromcontext.c_Contacts select c;例如,我可以根据要使用的表,以某种方式交换C_Contacts TEntity。但是没有找到一种方法来做到这一点

稍微简化一下,我只想能够传递一个tablename参数,在某些情况下,传递一些相关的字段名和值,可能是在一个通用对象中?到我的例程,然后让该例程动态插入LINQ到实体数据上下文/模型,并对参数表执行一些标准的select all操作,或者基于通用记录id对参数表执行删除操作。我试图避免调用基于表名等的各种不同自动生成的L2E方法……而只是尝试深入数据上下文,并最终了解动态传递的表/字段名的L2E查询语法


是否有人找到了成功/高效的方法?任何想法、链接、示例?

DbContext对象有一个通用的集合方法。这会给你

from c in context.Set<Contact>() select c
以下是从字符串开始时的方法:

public void Test()
{
    dynamic entity = null;
    Type type = Type.GetType("Contract");
    entity = Activator.CreateInstance(type);
    ProcessType(entity);
}

public void ProcessType<TEntity>(TEntity instance)
    where TEntity : class
{
    var result = 
        from item in this.Set<TEntity>()
        select item;

    //do stuff with the result
    //passing back to the caller can get more complicated
    //but passing it on will be fine ...
}

我将对此进行探讨。我正在使用EF的早期版本。这看起来像一个5.0方法,所以我将升级。目前,我正在使用context.executesToRecommandDeletefrom _Contacts,其中ContactID=+vID实际有效。。但我觉得我并没有从EF和L2E的许多特性中得到充分的好处;谢谢…我同意执行sql似乎违背了ORM的本质。如果你正在升级,直接升级到版本6是值得的。我只使用Set方法。我的上下文没有命名dbset。