2010-04-27 58 views
1

返回行我有這樣的代碼:從存儲過程

public IEnumerable<SomeClass> GetAvalibleThingies(DateTime startDate, DateTime endDate, int categoryID) 
    { 


     if (_entities.Connection.State == System.Data.ConnectionState.Closed) 
      _entities.Connection.Open(); 

     using (EntityCommand c = new EntityCommand("SomeEntities.GetAvalibleThingies", (EntityConnection)this._entities.Connection)) 
     { 
      c.CommandType = System.Data.CommandType.StoredProcedure; 

      EntityParameter paramstartDate = new EntityParameter("startDate", System.Data.DbType.DateTime); 
      paramstartDate.Direction = System.Data.ParameterDirection.Input; 
      paramstartDate.Value = startDate; 
      c.Parameters.Add(paramstartDate); 

    ........ 
      var x = c.ExecuteReader(); 

      return x as IEnumerable<SomeClass>; 
     }; 

但我不能讓它返回SomeClass的列表。這裏需要做什麼?我用的是實體框架3.5SP1一個

/M

回答

1

EntityDataReader類似於SqlDataReader的一類,應該在類似的方式來處理。
取而代之的是線

var x = c.ExecuteReader(); 
    return x as IEnumerable; 

的應該是這樣的


    List list = new List(); 
    using(EntityDataReader reader = c.ExecuteReader()) { 
    while(reader.Read()) { 
     SomeClass item = new SomeClass() { 
     }; 
     list.Add(item); 
    } 
    } 
    return list; 
+0

我如何獲得價值爲讀者每個「SomeID」? – 2010-05-06 13:09:41