首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从存储过程中选择带有linq的动态类型

如何从存储过程中选择带有linq的动态类型
EN

Stack Overflow用户
提问于 2013-04-30 13:36:14
回答 2查看 183关注 0票数 0

它很简单:对于这个结果,我没有模型/视图模型。我不想要它。我只想调用我的存储过程并创建一个动态类型。就像这样:

代码语言:javascript
复制
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();

不会那么难的。

编辑

在我所寻找的东西中,但要实现我的目标:

代码语言:javascript
复制
  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();
        }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-02 14:52:03

不是我想要的,而是实现我的目标:

代码语言:javascript
复制
  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();
        }
票数 0
EN

Stack Overflow用户

发布于 2013-04-30 16:26:28

您可以通过C#执行SQL,并将结果集读入动态对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16301278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档