c# - 使用 Entity SQL 查询概念模型

标签 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); 
        }
    }     
}

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

我收到以下错误:

无法在当前范围或上下文中解析“名称”。确保所有引用的变量都在范围内,加载了所需的模式,并且正确引用了 namespace 。接近简单标识符,第 1 行,第 43 列。

最佳答案

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

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

关于c# - 使用 Entity SQL 查询概念模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4610887/

相关文章:

sql - System.Transactions.TransactionInDoubtException 的原因

c# - 值注入(inject)器和数据表

c# - 由于 <AnonymousType>,无法将 .Union 与 Linq 一起使用

c# - 在通过 C# 调用的动态查询中转义 '@' 符号

c# - 如何将 rowstate 属性设置为“在运行时已删除”?

c# - 如何使用 Entity Framework Core 将属性设置为 "Identity"或自动递增的列?

Mysql:避免Union All查询中的空值

sql - 选择列中包含列表中所有值的所有行

c# - 使用 ENTity Framework 查询填充 DTO 类 List<>

sql - App=EntityFramework 在Sql 连接字符串中做了什么?