2010-04-27 62 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