C# 部分使用类是一种好的做法吗?

C# 部分使用类是一种好的做法吗?,c#,asp.net,database,C#,Asp.net,Database,我正在编写一个表示数据库中模型的类。该模型中的一些数据是由数据库创建的,在创建时它是未知的。这是我所说的一个小例子: public class Person { public int id { get; private set; } public string name { get; set; } // Methods to load and update... } 此类将具有从数据库加载数据和更新对数据库所做更改的方法 现在,我的问题是: 我应该使用这个类在数据库中创

我正在编写一个表示数据库中模型的类。该模型中的一些数据是由数据库创建的,在创建时它是未知的。这是我所说的一个小例子:

public class Person {
    public int id { get; private set; }
    public string name { get; set; }
    // Methods to load and update...
}
此类将具有从数据库加载数据和更新对数据库所做更改的方法

现在,我的问题是:

我应该使用这个类在数据库中创建新的个人记录吗? 或者我应该创建一个新类,该类只具有创建新人所需的属性? 同样,我的理由是,我不能在创建时知道id字段,所以也许我不应该使用同一个类

我希望你能帮我解决这个难题

Marcel

简短回答:第一个问题是,第二个问题不是

理论上,你的班级应该拥有申请所需的所有成员。如果数据库表包含键,则根据定义,键必须出现在类中,否则程序将无法添加行。通过使类符合数据库表的要求以及程序的要求,该类将适合于添加、更新甚至搜索。如果您开始选择要添加的字段,那么您将需要选择用于每个操作的类,这会导致混乱,最终可能会浪费您的时间

这并不是说你必须拥有你班上的每一个专栏;如果应用程序不需要该列,则不需要包含该列


之前有一条关于实体框架的评论,要求您构建这种类型的类,或者说它当时的名称。

您应该阅读有关存储库模式的内容。您正在重新发明fire,您知道实体框架吗?它基本上就是您在这里定义的,Entity framework创建了另一个类来执行所有CRUD操作,您只需在Entity framework中为模型提供所有属性都是可写的。我想确保我没有错误地更改任何内容。如果您不希望某些字段出现在模型中,那么只需删除它们。事实上,我问了这个问题。Marcel只是为了清晰起见做了一些编辑。不管怎样,我想你是对的。尽管如此,Marcin和bto.rdz提到的存储库模式和实体框架似乎是我试图最终实现的目标。