如果我使用AsQueryable准备查询并在实体框架中动态追加搜索条件,那么与SQL查询相比需要花费很长时间。是否有任何替代方法在实体框架中创建动态查询?
谢谢 杰里米
答案 0 :(得分:-1)
如何编写原始sql?这可能不是最好的选择,但可以替代..必须比较时间
您可以使用这样的方式来完成这项工作。
//an entity to return
AltPedVendaModel ret = new AltPedVendaModel();
var conn = DbContext.Database.GetDbConnection();
try
{
conn.Open();
using (var command = conn.CreateCommand())
{
string query = $"select * from .......";
command.CommandText = query;
DbDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
//read line to line
ret = new AltPedVendaModel
{
IsOk = reader.GetBoolean(0),
Awb = reader.GetString(1),
Invoice = reader.GetString(2),
Po = reader.GetString(3),
Obs = reader.GetString(4),
Frete = reader.GetDecimal(5),
};
}
}
reader.Dispose();
}
}
catch (Exception ex)
{
}
finally
{
conn.Close();
}
return ret;