2011-01-06 196 views
2

思想我读的地方,你其实可以查询与实体SQL概念模型,采用基于字符串的查询,例如:查询概念模型与实体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); 
     } 
    }  
} 

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

我得到以下错误:

“名称”不能在当前范围或上下文来解决。确保所有引用的变量都在作用域中,所需的模式被加载,并且名称空间被正确引用。近简单的标识符,第1行,列43

+0

不知道自定义类型,但这不是有效的ESQL。你看起来了吗? http://msdn.microsoft.com/en-us/library/bb399554.aspx – 2011-01-07 14:34:51

回答

1

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

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

你得到的错误说,你必须放它。名称如下:

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