2013-05-31 18 views
0

我正在使用EF使用Linq來創建列表zz,它工作正常。閱讀實體框架中的列表屬性

var zz = (from m in z 
      join n in t_bb 
      on m.id equals n.id into output 
      from j in output.DefaultIfEmpty() 
      select new 
      { 
       s_Id = m.s1, 
       name = j.Name, 
       main_Date = m.mDate, 
      }); 

return zz; 

當我使用這個訪問的方法,下面的代碼

inputOutput io = new inputOutput(); 
var n = io.readWrite1(); 
foreach (var i in n) 
{ 
    i.name; 
    //Complier gives error Type or namespace i could not be found at i.name 
    Console.WriteLine(i); 
} 

這一切工作正常,我可以得到上市控制檯。問題是當我嘗試訪問列表中的任何屬性i.name或任何,我不能得到任何,沒有智能感知,當我把鼠標放在我說它「類型和命名空間我找不到」。

+0

readWrite1方法的返回類型是什麼? – Khepri

+0

Simon是對的,最好返回將保存所有屬性值的類實體。 – fiberOptics

回答

2

不幸的是,c#和visual studio不能很好地處理跨越方法邊界的匿名類。你必須把它變成一個具體的類或元組,才能在你的調用方法中獲得智能感知。

另一個選擇是使用dynamic(n.Cast < dynamic>()) - 但仍然不會給你intellisense - 但是你可以使用該屬性。