【发布时间】:2016-05-18 15:44:21
【问题描述】:
我只是好奇是否应该将我的年龄方法放入我的 POCO 类中,或者将此方法留在我的业务层中。
现在我有 4 层:
- 业务对象(BO)
- 数据访问层 (DAL)
- 用户界面(UI)
- 服务。
现在我想查询年龄超过 13 岁的用户。所以我正在讨论是否应该在 BO 的 POCO 类中有一个返回用户当前年龄的方法,或者我应该从我的业务层查询 DOB 如下
BO
public class Person:Base
{
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public DateTime DOB { get; set; }
public int Age
{
get
{
DateTime today = DateTime.Today;
int age = today.Year - DOB.Year;
return age;
}
}
}
业务层
public class PersonBLL
{
private PersonDAL db = null;
public PersonBLL()
{
db = new PersonDAL(new AppContext());
}
public IEnumerable<Person> PersonGEAge(int age)
{
DateTime td = DateTime.Now;
DateTime birthday = DateTime.Now;
DateTime date = new DateTime(birthday.Year - age, td.Month, td.Day, 4, 5, 6);
return db.PersonDOB(date);
}
}
【问题讨论】:
-
你的年龄计算有误!请看stackoverflow.com/questions/9/…
-
这个问题看起来更像是一个核心评论,最好在codereview.stackexchange.com上提问
-
@DavidPine:问题不在于代码,而在于层和实体设计。
标签: c# asp.net-mvc-4 asp.net-web-api2