使用ASP.Net MVC与经典ADO.Net
发布时间:2020-07-03 02:35:14 所属栏目:asp.Net 来源:互联网
导读:我正在寻找一种方法来访问存储过程使用经典的ADO.Net,因为我是新的ASP.Net MVC我不知道如何去。 大多数示例显示使用ADO.Net Entity框架的CRUD操作。 你可以有一个存储库: public interface IUsersRepository{ public User GetUser(int id);} 然后实现它: p
我正在寻找一种方法来访问存储过程使用经典的ADO.Net,因为我是新的ASP.Net MVC我不知道如何去。 大多数示例显示使用ADO.Net Entity框架的CRUD操作。 解决方法你可以有一个存储库:public interface IUsersRepository { public User GetUser(int id); } 然后实现它: public class UsersRepository: IUsersRepository { private readonly string _connectionString; public UsersRepository(string connectionString) { _connectionString = connectionString; } public User GetUser(int id) { // Here you are free to do whatever data access code you like // You can invoke direct SQL queries,stored procedures,whatever using (var conn = new SqlConnection(_connectionString)) using (var cmd = conn.CreateCommand()) { conn.Open(); cmd.CommandText = "SELECT id,name FROM users WHERE id = @id"; cmd.Parameters.AddWithValue("@id",id); using (var reader = cmd.ExecuteReader()) { if (!reader.Read()) { return null; } return new User { Id = reader.GetInt32(reader.GetOrdinal("id")),Name = reader.GetString(reader.GetOrdinal("name")),} } } } } 然后您的控制器可以使用此存储库: public class UsersController: Controller { private readonly IUsersRepository _repository; public UsersController(IUsersRepository repository) { _repository = repository; } public ActionResult Index(int id) { var model = _repository.GetUser(id); return View(model); } } 这样控制器不再依赖于数据访问层的实现:无论您是使用纯ADO.NET,NHibernate,EF还是其他一些ORM,调用外部Web服务,XML,都是您的名字。 现在剩下的就是配置你最喜欢的DI框架,注入到控制器的存储库的正确实现。如果明天你决定改变你的数据访问技术,没有问题,只需写一个不同的IUsersRepository接口的实现,并重新配置你的DI框架使用它。无需触摸控制器逻辑。 您的MVC应用程序不再与数据存储的方式相关联。这使得更容易单独测试您的控制器,因为它们不再紧密耦合到特定的数据源。 (编辑:鲜蔬坊站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 按钮属性: – commandName和CommandArguments
- asp.net – 最后修改标头在MVC
- asp.net-mvc – 从Api控制器内生成绝对的url to action
- WPF中ComboBox绑定数据库自动读取产生数据
- 从ASP.NET C#启动一个程序
- SqlServer如何给表添加新的字段以及字段注释
- asp.net – 如何打破VB.NET中的“if”块
- asp.net – Oracle.ManagedDataAccess:TNS:无法解析指定的
- 从ASP.NET MVC应用程序中的Amazon SES发送电子邮件
- asp.net-mvc – 从控制器重定向初始化不工作
推荐文章
站长推荐
- 如何单元测试我的asp.net-mvc控制器的OnActionEx
- asp.net-mvc – 在ASP.NET MVC中添加服务引用4
- asp.net-mvc – 尝试创建类型为’TypeNewsContro
- asp.net-mvc – AppDomain.GetAssemblies和Build
- asp.net – 在SQL Server中将日期转换为刻度
- asp.net-mvc – ASP.NET MVC:添加将DisplayName
- asp.net-mvc-3 – MVC 3 WebGrid – 可以进行内联
- ASP.NET 根据汉字获取汉字拼音的首字母(含多音字
- asp.net-mvc-2 – ASP.NET MVC2 ModelMetadataPr
- 我是否需要在asp.net中取消订阅(手动订阅)活动?
热点阅读