姬長信(Redy)

c# – 将实体保存到数据库的设计模式


我有一个类似于下面的类(C#):

public class Product {

    public int ID {get;set;}
    public string Name {get;set;}
    public double Price {get;set;}

    public void Save() {
        string sql = "INSERT INTO Product.....";
        Database.Execute(sql);
    }

    public void Delete() {
        string sql = "DELETE Product WHERE.....";
        Database.Execute(sql);
    }
}

我主要担心的是上面的代码违反了SOLID原则,因为它负责创建和删除自身.

也许这些Save和Delete方法应该放在Product实体之外的某个地方(Factory / Repository可能?).