2011-01-06 102 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'"