c#object/design fundamentals

Sco*_*mer 0 c# object

这是一种标准的,良好的做事方式吗?基本上返回一个自己的列表?实际字段(id,title等)应该是一个单独的类吗?(我见过人们称之为DTO对象)

我正在开始一个项目,我想尝试将这些基础知识降低 -

谢谢!!

public class Calendar
{
    public int id { get; set; }
    public string title { get; set; }

    public List<calendar> GetAll()
    {
        var list = new List<calendar>();

        var db = new mssql2();
        db.set("s1");
        string sql = @"select * from [cal]";
        var dr = db.dr(sql);
        while (dr.Read())
        {
           var e = new calendar();
           e.id = (int)dr["id"];
           e.title = dr["title"].ToString();
           list.Add(e);
        }
        return list;
    }
}
Run Code Online (Sandbox Code Playgroud)

Bra*_*don 7

您似乎将域模型与数据访问层混合在一起.

保持Calendar作为它自己的类,也许可以创建另一个类CalendarService或者CalendarRepository返回Calendar对象列表.

这是一个例子:

public class Calendar
{
    public Calendar() { }
    public Calendar(int id, string title)
    {
       Id = id;
       Title = title;
    }
    public int Id { get; set; }
    public string Title { get; set; }
}

public class CalendarService
{
    public static List<Calendar> GetAll()
    {
        var list = new List<Calendar>();

        var db = new mssql2();
        db.set("s1");
        string sql = @"select * from [cal]";
        var dr = db.dr(sql);
        while (dr.Read())
        {
            // Use the constructor to create a new Calendar item
            list.Add(new Calendar((int)dr["id"], dr["title"].ToString()));
        }
        return list;
    }
}
Run Code Online (Sandbox Code Playgroud)