gpt4 book ai didi

.net - 什么对象应该从数据访问层返回到业务层一个n层系统

转载 作者:行者123 更新时间:2023-12-03 23:20:32 24 4
gpt4 key购买 nike

例如,如果您有一个名为 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;

public int ID{ get{return id; } set{ id=value; } }
public int Name{ get{retutn name; } set{ name=value; }
}

public static IPerson GetPerson(int personId)
{
//get person record from db, populate Person object
return person;
}
}

//business tier
public class Person : IPerson{
private int id;
private string name;

public int ID{ get{return id;} set{id=value;} }
public string Name{ get{return name;} set{name=value;} }

public void Populate(int personId){
IPerson temp = DataAccess.GetPerson(personId);
this.ID = temp.ID;
this.Name = temp.Name;
}
}

但这一切似乎有些繁琐?这个问题有更优雅的解决方案吗?我应该将 DataRow 从数据访问层返回到业务层吗?

最佳答案

您无需在数据访问层 (DAL) 中重复类定义。

您可以在单独的程序集中将业务实体创建为“哑”容器,例如您的 Person 类可以是:-

public class Person
{
int ID { get; set: }
string Name { get; set: }
}

然后,您可以为您的 DAL 提供对业务实体层的引用。您的 Controller 对象,无论它们是在单独的业务逻辑层中还是在您的 UI 层中,都可以调用 DAL,它可以创建一个业务实体,从数据库中填充它并将其返回给您的 Controller 。

This article Imar Spaanjaars 对这种模式有很好的解释。

关于.net - 什么对象应该从数据访问层返回到业务层一个n层系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/518329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com