[英]How to use raw normal sql in ASP.NET MVC without linq?
我正在尝试使用ASP.NET MVC使用纯SQL编写一些代码。
我认为我应该建立一个模型,并坚持使用MVC模式。
对于良好实践的任何建议将受到高度赞赏,示例也非常有用。 例如,我不确定是否应该将此代码从主存储库中分离出来,如果应该,应该将其放在哪里?
另外,我将尝试在此查询中从2个表返回数据。
我想使用的查询类型是这样的。
查看此页面的最佳答案
也
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.