Asp.net 数据库访问的静态类?
我使用DataClassesDataContext将数据库中的所有表映射到我的asp.net应用程序中 为了执行CRUD操作,我用方法创建了静态类,每个方法内部都有一个实例化DataClassesDataContext 例如:Asp.net 数据库访问的静态类?,asp.net,c#-3.0,Asp.net,C# 3.0,我使用DataClassesDataContext将数据库中的所有表映射到我的asp.net应用程序中 为了执行CRUD操作,我用方法创建了静态类,每个方法内部都有一个实例化DataClassesDataContext 例如: public static class UserQ { public static User getUserById(int userId) { DataClassesDataContext db = new DataClassesData
public static class UserQ
{
public static User getUserById(int userId)
{
DataClassesDataContext db = new DataClassesDataContext();
var requestedUser = (from u in db.Users
where u.User_id == userId
select u).First();
if (requestedUser != null)
return (User)requestedUser;
else
return null;
}
}
我不确定这种在web应用程序中执行数据库操作的方法是否安全?
如果没有,您能推荐一个更好的模式吗?我建议您看看存储库模式: 1)
2) (Scott Gu在《Nerd晚餐》中的第一章——它是为MVC而写的,但所示的存储库模式在没有MVC的情况下仍然有效)我建议大家看看存储库模式: 1)
2) (Scott Gu在《Nerd晚餐》中的第一章-它是针对MVC的,但所示的存储库模式在没有MVC的情况下有效)当DataClassesDataContext实现IDisposable时,您应该用using指令来包装它:
using (DataClassesDataContext db = new DataClassesDataContext())
{
...
}
由于DataClassesDataContext实现了
IDisposable
,您应该使用using指令对其进行包装:
using (DataClassesDataContext db = new DataClassesDataContext())
{
...
}
在web应用程序中使用STATIC时,我会非常小心。有时错误是如此微妙,以至于您将花费大量时间进行调试 我认为bnkdev&Oded一针见血:查看存储库模式并将您的上下文调用包装在using语句中
HTH.在web应用程序中使用静态时,我会非常小心。有时错误是如此微妙,以至于您将花费大量时间进行调试 我认为bnkdev&Oded一针见血:查看存储库模式并将您的上下文调用包装在using语句中
嗯。我同意。它确实会简化事情,在LINQ到SQL的情况下,如果您依赖IQueryable,它将大大提高您的性能。看看这里,谢谢。以前从未听说过存储库模式。在对文章进行放射线处理后,我可以说:太好了!我同意。它确实会简化事情,在LINQ到SQL的情况下,如果您依赖IQueryable,它将大大提高您的性能。看看这里,谢谢。以前从未听说过存储库模式。在对文章进行放射线处理后,我可以说:太好了!