asp.net – 从DAL返回BLL
|
我目前有一个申请,其中包括:
我在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-mvc – 可以通过RedirectToAction传递模型吗?
- 防止为ASP.NET服务器控件打包标签
- asp.net – Nlog不创建相对于网站项目的文件
- ASP.Net,C#.Net和VB.Net之间的区别?
- 制作打印机友好的ASP.NET页面的最佳方法?
- asp.net – 实体框架:Singletonish ObjectContext – Good
- ASP.NET按钮重定向到另一个页面
- asp.net – 如何在IIS 7.5中配置应用程序池在停止时自动重新
- asp.net-vnext中的旧程序集引用错误
- asp.net-mvc – ModelState.IsValid总是返回false
- asp.net-mvc-3 – 如何使用Console.WriteLine在A
- 如何在ASP.net runat =’server’标记中使用传统
- 在ASP.NET中读取请求体
- asp.net-mvc – 如何为未经过身份验证的用户隐藏
- asp.net-web-api2 – Swagger中的数据注释
- asp.net – 使用MySql和MVC 3上的成员资格向注册
- asp.net-mvc – 在ASP.NET会话中存储任何内容导致
- asp.net – 链接按钮属性在新选项卡中打开?
- asp.net – 在MS Access 2003中INSERT到用户表中
- asp.net-mvc – 如何在ASP.NET WebApi帮助页面中
