谁能告诉我,在使用EF4代码优先POCOs时,把我的业务方法放在哪里最好?他们应该去POCO班级吗?例如。
public class customer
public property Id as int32
public property Name as string
public property Archived as boolean
public sub MarkAsArchived
me.Archived = true
end sub
public function EmailAllInvoices as boolea
例如,如果您有一个名为Person (ID,Name等)的数据库表,那么数据访问层应该向业务层返回什么样的对象?我的想法是这样的:
//data access tier
public class DataAccess{
public interface IPerson{
int ID{ get; set; }
string Name{ get; set; }
}
internal class Person : IPerson{
private int id;
private string name;
publi
假设我们有一个一流的客户
Class Customer
{
String name, emailId;
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
//Getter and Setter for Email ID
public void addNewCustomer()
{
//DB Operations
因此,在数据传输对象中应该只有setter和getter。但是,如何处理在数据传输对象中插入和删除对象呢?
public class dto{
setters and getters...
..
..
public void delete(){
CustomreDao.delete(this.ID);
}
}
这会不会违背DAO模式本身呢?
提前谢谢。
我们目前正在就如何构建业务逻辑类进行内部辩论。目前,我们的商业类结构如下:
public class OrderBL
{
public void CreateOrder(OrderDTO order)
{
//save order
//send email
}
public void CancelOrder(OrderDTO order)
{
//save order
//send email
}
public void MarkOrderAsDispatched(Ord
(注:示例简化)
我把我的解决方案分成了三个项目
WebSite
业务逻辑
数据存取逻辑
该网站可以访问BL和DAL。
BL什么都没有
DAL有权访问BL
在网站上我可以做一些类似的事情
BL.User user = DAL.GetUser(1)
我在网站上也有这种逻辑。
user = [new user information]
If Not DAL.DoesEmailExists(user) Then
DAL.InsertNewUser(user)
End If
如果/从网站中插入,我有什么选择来删除这个选项?
我的理想选择是将这个逻辑放入BL.User中,但这是不可能的。