使用Entity SQL查询概念模型

时间:2011-01-06 01:08:30

标签: c# sql entity-framework entity-framework-4 linq-to-entities

以为我在某处读过你实际上可以用Entity Sql查询你的概念模型,使用基于字符串的查询:

class DBSetTest<T> : List<T> 
{
    DBEntities db = new DBEntities();

    public DBSetTest()
    {
        ObjectQuery<T> test = new ObjectQuery<T>("SELECT Name FROM Sessions WHERE  Name = 'sean'", db);

        foreach (var v in test)
        {
            this.Add(v); 
        }
    }     
}

其中“会话”是我使用“定义查询”定义的自定义实体类型。我会用普通的linq语法查询它。 Entity SQL是仅查询商店还是可以像LINQ-to-Entities那样查询我的概念模型?如果是这样,不确定我是否有正确的语法,因为它可能不是sql语法。我的目标是在这里创建一种自定义通用列表,在那里我可以针对我的概念模型编写动态查询。

我收到以下错误:

无法在当前范围或上下文中解析

'名称'。确保所有引用的变量都在范围内,加载了所需的模式,并正确引用了名称空间。近简单标识符,第1行,第43列。

2 个答案:

答案 0 :(得分:1)

我认为,它不是有效的实体SQL语法, 可能你必须添加一些这样的关键字:

SELECT VALUE s.Name FROM your_ObjectContext_name.Sessions AS s WHERE s.Name = 'sean'

答案 1 :(得分:0)

你得到的错误说你必须把它。在Name之前,像这样:

"SELECT it.Name FROM Sessions WHERE it.Name = 'sean'"