0

簡単です。この結果のモデル/ビューモデルがありません。私はそれを持ちたくありません。ストアド プロシージャを呼び出して、動的な型を作成したいだけです。そんな感じ:

dynamic ceps = (from cep in context.Database.SqlQuery<dynamic>("spLogradouro @pCEP, @pUF, @pLOCALIDADE, @pTIPOLOGRADOURO, @pLOGRADOURO", new SqlParameter("pCEP", filter), new SqlParameter("pUF", ""), new SqlParameter("pLOCALIDADE", ""), new SqlParameter("pTIPOLOGRADOURO", ""), new SqlParameter("pLOGRADOURO", ""))
                              select new 
                        {
                            property_one = name_of_my_column_of_this_stored_procedure_return

                        }).Single();

そんなに難しいことはできません。

編集

私が探していたものを挿入しますが、これを行うことで私の目標を達成します:

  CepContext context = new CepContext();
        JsonResult result = Json(new { Street = "", District = "", City = "", UF = "" });
        using (var cmd = context.Database.Connection.CreateCommand())
        {

            cmd.CommandText = "spLogradouro @pCEP, @pUF, @pLOCALIDADE, @pTIPOLOGRADOURO, @pLOGRADOURO";
            cmd.Parameters.Add(new SqlParameter("pCEP", filter));
            cmd.Parameters.Add(new SqlParameter("pUF", ""));
            cmd.Parameters.Add(new SqlParameter("pLOCALIDADE", ""));
            cmd.Parameters.Add(new SqlParameter("pTIPOLOGRADOURO", ""));
            cmd.Parameters.Add(new SqlParameter("pLOGRADOURO", ""));

            cmd.Connection.Open();
            var reader = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                reader.Read();
                result = Json(new
                {
                    Street = reader.GetString(reader.GetOrdinal("log_logradouro")),
                    District = reader.GetString(reader.GetOrdinal("log_bairro")),
                    City = reader.GetString(reader.GetOrdinal("log_localidade")),
                    UF = reader.GetString(reader.GetOrdinal("log_uf"))
                });
            }
            cmd.Connection.Close();
        }
4

2 に答える 2

0

いつでも C# 経由で SQL を実行し、結果セットを動的オブジェクトに読み込むことができます。

于 2013-04-30T16:26:28.883 に答える