2012-09-12 64 views
2

我正在嘗試使用mvc3和c#做一個小型網站,並且我有點卡住了這個LINQ查詢。LINQ語句從一個表中獲取值取決於其他表

我有兩個表:

  1. 代理(ID,名字,姓氏,登錄名,密碼)

  2. 子代理(subAgentsId,agentsId)

這裏Agents.id == SubAgents.agentsId

var query = from subAgent in db.SubAgents 
         join agent in Agents on subAgent.AgentID equals agent.ID 
       select agent; 

我有一個類似的代理和客戶端運行的聯合聲明。但運行良好。不幸的是,它不斷給我這個錯誤。

「實體命令爲ExecutionException是由用戶代碼未處理的」

此錯誤彈出我準備子代理的詳細信息發送到視圖之前。

不知道我做錯了什麼。

+0

你可以發佈內部異常嗎? – Eranga

+0

@eranga {「無效的對象名'dbo.AgentAgentRelationships'。」} ...這是內部異常消息。這個'AgentAgentRelationships'是我數據庫中第二張表的名字。謝謝:) – Sindhoor

+0

表EF是指不存在或沒有訪問表的權限。 – Eranga

回答

1

使用導航屬性。

var query = from subAgent in db.SubAgents 
      select subAgent.agent; 
+0

謝謝你的kirk,我試過...我怎麼能從另一個表中調用一張桌子。它不需要一個連接或其他東西。我對此很新,所以如果我的問題真的很抱歉,很抱歉!但我似乎無法想出這一個。再次感謝! :) – Sindhoor

+0

嗨信德,這是一個很好的問題,因爲它並不總是顯而易見的。如果數據庫對象具有外鍵,那麼框架將爲每個相關的項目對生成屬性。看我的問題http://stackoverflow.com/q/7229569/146077 –

+0

嗨,我看了你以前問過的問題。我明白這些連接是如何工作的。我得到---- {「無效的對象名'dbo.AgentAgentRelationships'。」} -----作爲內部聯合異常。真的不知道如何繞過它。在過去的2天裏,我一直堅持這樣做:( – Sindhoor

相關問題