繁体   English   中英

如何在没有linq的ASP.NET MVC中使用原始普通SQL?

[英]How to use raw normal sql in ASP.NET MVC without linq?

我正在尝试使用ASP.NET MVC使用纯SQL编写一些代码。

我认为我应该建立一个模型,并坚持使用MVC模式。

对于良好实践的任何建议将受到高度赞赏,示例也非常有用。 例如,我不确定是否应该将此代码从主存储库中分离出来,如果应该,应该将其放在哪里?

另外,我将尝试在此查询中从2个表返回数据。

我想使用的查询类型是这样的。

查看此页面的最佳答案

如何在SQL Server 2005中实现高性能树视图

string sqlGetQuestionAnswers = "SELECT TOP (10) * FROM tblquestion ORDER BY NEWID()";//

using (SqlDataAdapter dapQuestions = new SqlDataAdapter(sqlGetQuestionAnswers, ConfigurationManager.ConnectionStrings["SiteConnectionString"].ToString()))
        {
            DataSet dsQuestions = new DataSet();
            dapQuestions.Fill(dsQuestions);

            if (dsQuestions.Tables[0].Rows.Count > 0)
            {
               work with data;
        }

            else
            {
                Error;
            }
        }

将其保留在您的存储库中。 存储库的目的是抽象化您的域操作-如果每个函数使用不同的数据源和访问数据的不同方法(SQL,文件IO,http),那么就这样-存储库的客户端将不知道它们之间的区别。

显然,您使存储库的凝聚力越强,维护起来就越容易。 但是,此代码肯定属于该代码。

鉴于您希望使用SQL到MODEL方法,这可能对您有用。

我在这里使用LinqToSQL数据上下文;

我有一个文章表,其中包含10个字段,但我只想标题,所以我创建了一个类;

public class Art
{
  string title { get; set; }
}

然后我有我的数据上下文对象

static ArticlesDataContext dc = new 
ArticlesDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

然后,我可以填充我的模型,尽管很简单。

var arts = dc.ExecuteQuery<Art>(@"Select * from articles");

这对我有帮助吗?

这似乎是“血腥的关节”方法-您实际上并没有使用任何3.5代功能来代表您解决此类问题。

就是说,我建议您在模型文件夹中构建业务对象,并让您的业务对象使用SQL处理持久性。 不要将SQL放在您的控制器中, 绝对不要在您的视图中。 在这些层之间保持清晰的分隔,您的生活将变得更加轻松。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM