Набор данных в IQueryable<T>
Я нашел ссылку DataSet на IQueryable
но как я реализовал:
public IQueryable<ORDRE> Get_Ordre_ParDate_Iquery(string sql_SelectAll, DateTime dateDeb, DateTime dateFin)
{
try
{
using (var connectionWrapper = new Connexion())
{
var connectedConnection = connectionWrapper.GetConnected();
SqlCommand comm_SelectAll = new SqlCommand(sql_SelectAll, connectionWrapper.conn);
comm_SelectAll.Parameters.AddWithValue("@DATE_CREE_DEB", dateDeb);
comm_SelectAll.Parameters.AddWithValue("@DATE_CREE_FIN", dateFin);
SqlDataAdapter adapt_SelectAll = new SqlDataAdapter();
adapt_SelectAll.SelectCommand = comm_SelectAll;
DataSet dSet_SelectAll = new DataSet();
adapt_SelectAll.Fill(dSet_SelectAll, "LeOrdre");
dSet_SelectAll.Dispose();
adapt_SelectAll.Dispose();
return dSet_SelectAll.Tables["LeOrdre"].AsEnumerable().AsQueryable<ORDRE>();
}
}
catch (Exception excThrown)
{
throw new Exception(excThrown.Message);
}
}
.. dSet_SelectAll.Tables["LeOrdre"] AsEnumerable() AsQueryable(); эта строка не верна
1 ответ
Похоже, вы пытаетесь получить данные из команды TSQL в экземпляры объекта типа ORDRE
, DataSet
а также DataAdapter
кажется, просто механизм для обработки команды и результатов; если это так, то это чисто накладные расходы и не помогает. Интересно, может ли "dapper" быть более простым вариантом здесь, то есть
public List<ORDRE> Get_Ordre_ParDate_Iquery(string sql_SelectAll,
DateTime dateDeb, DateTime dateFin)
{
using (var connectionWrapper = new Connexion())
{
connectionWrapper.GetConnected();
return connectionWrapper.conn.Query<ORDRE>(sql_SelectAll,
new { DATE_CREE_DEB = dateDeb, DATE_CREE_FIN = dateFin }).ToList()
}
}
здесь Query<T>
метод из "dapper" и подтверждает функциональность команды и результата; new {...}
предоставляет параметры. ToList()
повторяет результаты в List<ORDRE>
, Там нет никакой пользы, используя IQueryable<T>
здесь, так как эти данные не будут компонуемыми; однако, если абонент понимает это, он может использовать .AsQueryable()
на результат, если они хотят. Но это все равно будет принципиально LINQ-to-Objects (просто завернутый в IQuerayble<T>
фасад).