2010-11-05 170 views
2

我正在調試Visual Studio 2008中的一些實體框架代碼,並試圖從數據庫中檢索實際值。我期望從一個靜態表中看到一組ID,名稱對。爲什麼實體框架實體集的名稱是「it」?

using (MyModel context = new MyModel()) 
{ 
    var stat = context.StatusSet.First(x => x.ID == 1); 
    //... 
} 

當我查看上下文時,我反而看到context.StatusSet.Name的值爲「it」。

這是什麼意思?

+0

純粹的投機,但它聽起來像是在對象體系中的「根」節點,讓人想起*「這個」 *的名稱。 – 2010-11-05 22:20:01

+0

我不知道,但在EF1中,我已經看到了一些代碼在LINQ中的實體,其中一個同事必須做一些where語句,它還包含'魔術字符串''IT' – Michel 2010-11-05 22:27:02

+0

@Michel:我已經看到這種情況的例子。也許這是我需要採取的方法,因爲這個表達式不起作用。 – Blanthor 2010-11-05 22:36:43

回答

1

在像T-SQL這樣的SQL變體中,有一個隱含的這個對象,所以你只需要指定列名。但是,您可以爲表指定別名(例如,SELECT a。* FROM Table a)。

實體框架能夠使用ESQL(或實體SQL)運行查詢,這是一種基於SQL的語言。在ESQL中,這個範圍並不隱含,您需要明確地使用「it」來引用當前範圍。

埃裏克

+0

我一直在試圖找出更多關於「它」的信息。即使是ADO.NET團隊博客似乎也沒有涉及到這一點。 – Blanthor 2010-11-11 15:31:49

+0

同意,它不是eSQL的一個很好的方面,即使在MSDN文檔中也是如此。 – 2010-11-16 01:54:17