2012-11-02 40 views
2

我有一個具有幾個屬性的EF實體對象sysSettings類。 groupname屬於這些屬性之一。無法查詢EF對象上名爲「group」的屬性

在下面的代碼querIQueryable<sysSettings>對象。

當試圖寫下面的查詢時,我遇到了第二個where子句的困難。

var query = from setting in quer 
    where (setting.name.Equals("Url") && setting.group.Equals("system")) 
select setting; 

看來,當我有叫group一個實體對象上的屬性,我不能在LINQ查詢中訪問該屬性。

我想這可能是因爲group可能是保留/上下文工作/在LINQ行動。

不幸的是,更改實體的屬性名稱不是一個選項。

+0

什麼是錯誤消息和什麼組件正在給出該消息? – usr

+0

它試圖使用來自linq的'group'而不是來自實體的組。看起來像'Equals(string)'方法不可用,即使'group'是一個字符串屬性。 –

+0

請發佈消息的消息和發件人。它是診斷和提供解決方案的最佳工具。 – usr

回答

4

添加@符號添加到您的屬性名(僅用於查詢,不改變設置的類定義):

var query = from setting in quer 
      where (setting.name.Equals("Url") && [email protected]("system")) 
      select setting; 

這個符號允許您使用保留字(這是group)。

1

如果你寫流利的語法會怎樣?

var query = quer.Where(e => e.name.Equals("Url") && 
          e.group.Equals("system")); 
+0

這也適用。謝謝。 –