2012-08-24 51 views
0

如何與另一個EntityJoin如何與實體框架進行聯接

我有這樣的一個,

IEnumerable<EntityNetimoveis.San_Imovel> im = db.San_Imovel.Where(a => a.Credenciada_Id.Equals(10));

我想San_Imovel_Caracteristica一個JOIN。主鍵和外鍵稱爲Imovel_Id

我試試這個

IEnumerable<EntityNetimoveis.San_Imovel> im = db.San_Imovel.Join.(IEnumerable<EntityNetimoveis.San_Imovel_Caracteristica>, i => imovel_id, a => imovel_Id).Where(a => a.Credenciada_Id.Equals(10));

,但是這是一個錯誤代碼。有語法錯誤。

回答

0

基本上,加入就是這樣。

var im = 
db.San_Imovel.Join(db.San_Imovel_Caracteristica, i => i.imovel_id, a => a.imovel_Id, (i, a) => a) 
.Where(a => a.Credenciada_Id.Equals(10)); 

編輯:

例如,

var result = db.ATable 
.Where(a => a.Name == 'test') 
.Join(db.BTable, a => a.Id, b => b.Id, (a, b) => a); 
+0

我認爲我們是最接近的解決方案。但是我在開發這個解決方案時遇到了一個錯誤。方法'System.Linq.Enumerable.Join <>的類型參數不能從用法中推斷出來。嘗試指定類型參數explicity.' –

+0

這是什麼?(i,a)=> a'? –

+0

你比較相同的類型?例如,i.imovel_id和a.imovel_id都必須是整數值。 – Win

0

有一個「。」加入後應該不存在

+0

有更錯了,它比。 – 2012-08-24 18:17:17

+0

呃,但這不會解決它:P – Gonzalo

0
var query = from EntityNetimoveis.San_Imovel i in db.San_Imovel 
    join EntityNetimoveis.San_Imovel_Caracteristica c in db.San_Imovel_Caracteristica on i.imovel_id equals c.imovel_Id 
    select i; 

return query.ToList(); 
+0

我需要最接近我使用的邏輯的東西。用lambda表達式 –