asp.net – 从DAL返回BLL
发布时间:2020-12-15 19:15:49 所属栏目:asp.Net 来源:网络整理
导读:我目前有一个申请,其中包括: 用户界面(网页) BLL(经理域对象) DAL(我的每个域对象的DataAccess类). 我在UI中使用以下内容来搜索域对象. protect sub Button1_Click(){ IBook book = BookManager.GetBook(txtID.Text);} 这是我的BLL public class BookManage
我目前有一个申请,其中包括:
用户界面(网页) BLL(经理&域对象) DAL(我的每个域对象的DataAccess类). 我在UI中使用以下内容来搜索域对象. protect sub Button1_Click() { IBook book = BookManager.GetBook(txtID.Text); } 这是我的BLL public class BookManager { public static IBook GetBook(string bookId) { return BookDB.GetBook(bookId); } } public class Book : IBook { private int? _id private string _name; private string _genre; public string Name { get { return _name; } private set { if (string.IsNullOrEmpty(value)) throw new Exception("Invalid Name"); _name = value; } } public string Genre { get { return _serial; } private set { if (string.IsNullOrEmpty(value)) throw new Exception("Invalid Genre"); _genre = value; } } // Other IBook Implementations } 最后这是我的DAL public class BookDB { public static IBook GetBook(int id) { // Get Book from database using sproc (not allowed to use any ORM) // ?? Create IBook Item? // return IBook } 如何创建一个IBook对象并将其返回给Manager? 编辑: BLL.Managers - BookManager BLL.Interfaces IBook BLL.Domain - Book DAL - BookDB. 谢谢! 解决方法
您可以创建仅包含数据的虚拟Book对象.获取,设置属性和成员值.这本书,在数据库中的每个字段有1个属性,但不验证任何东西.
您从数据库填充对象,然后发送到BLL. 当您要保存对象时,您也将其发送到BLL. 您的BLL中的类可以包裹这些对象,如果这是有道理的.这样,很容易将其发回DAL. 虚拟书: public class DummyBook:IBook { private nullable<int> _id; private string _name; private string _genre; public string Id { get {return _id;} set {_id = value;} } public string Name { get {return _name;} set {_name = value;} } public string Genre { get {return _genre;} set {_genre= value;} } } DAL书: public class DALBook { public static IBook:GetBook(int id) { DataTable dt; DummyBook db = new DummyBook(); // Code to get datatable from database // ... // db.Id = (int)dt.Rows[0]["id"]; db.Name = (string)dt.Rows[0]["name"]; db.Genre = (string)dt.Rows[0]["genre"]; return db; } public static void SaveBook(IBook book) { // Code to save the book in the database // you can use the properties from the dummy book // to send parameters to your stored proc. } } BLL书: public class Book : IBook { private DummyBook _book; public Book(int id) { _book = DALBook.GetBook(id); } public string Name { get {return _book.Name;} set { if (string.IsNullOrEmpty(value)) { throw new Exception("Invalid Name"); } _book.Name = value; } } // Code for other Properties ... public void Save() { // Add validation if required DALBook.Save(_book); } } Edit1:虚拟类应该在自己的项目中(模型,正如在评论中所述).参考文献的工作如下: DAL参考模型项目.BLL引用模型和DAL.UI引用BLL. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 在Html.BeginForm之外提交按钮
- ASP.net MVC中的Ajax帮助器
- ASP.NET Cookies BUG – 多个cookie随机复制?
- asp.net-mvc – 允许使用数字中的点和逗号,而不仅仅是小数
- asp.net – Http Handler正在iis express中工作,而不是在ii
- asp.net-mvc – ASP.NET MVC 4 – 使用子操作进行模态保存后
- asp.net-mvc – ASP.NET MVC中的动态(运行时生成)表单
- asp.net-mvc – 为什么font-awesome在localhost而不是web上
- asp.net-mvc-3 – 带抽象类的mvc3 razor editortemplate
- asp-classic – 经典的asp / asp.net网站 – global.asa无效
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC RadioButtonListFor
- 如何在ASP.NET MVC中获取相对路径
- asp.net – 共享.NET应用程序池
- asp.net-mvc – MVC6剃须刀如何检测调试模式?
- asp.net – Azure SqlException:服务器上的数据
- asp.net – ‘txtName’未声明 由于其保护等级可
- asp.net-mvc – 如何在ASP.NET MVC中将复杂的Vie
- 将typescript定义文件编译到wwwroot文件夹时出现
- asp.net核心 – Asp.net核心错误管理
- asp.net-core – 我的自定义ASP.Net 5 MVC 6 Tag
热点阅读