使用实体框架

时间:2018-06-05 12:53:53

标签: c# entity-framework search entity-framework-6 asqueryable

如果我使用AsQueryable准备查询并在实体框架中动态追加搜索条件,那么与SQL查询相比需要花费很长时间。是否有任何替代方法在实体框架中创建动态查询?

谢谢 杰里米

1 个答案:

答案 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;