DEH*_*AAS 8 .net c# database entity class-design
有一段时间我一直在考虑如何处理由数据库分配标识符的对象.
表示表实体的典型对象可能如下所示:
public class Test
{
public int Id { get; private set; }
public string Something { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
假设我们希望使用此对象来插入,检索和更新数据库中的对象.至于检索和更新,我们没有问题,因为Id字段总是有一个值.
但是,如果我们要将Test类型的新对象插入数据库,则Id字段仍需要具有值.我们可以使用"0",因为它不太可能被用作数据库密钥,但实际上这不是一个好的设计.
同样,如果我们反转情况并使Id属性可以为空,我们可以对数据库尚未分配标识符的对象使用null.但是,现在可以从数据库中检索的对象不具有标识符(如类设计所允许,但不是数据库设计)
关于如何为这个问题做好设计的任何好主意?
因此,您有一个包含数据库表的标识符作为字段的类,因此在检索/删除和更新的情况下,您的实体的标识符与数据库记录的标识符对齐。在插入的情况下,您可以检索刚刚插入的记录的标识值并使用该值更新您的实体。因此,您可以使用单独的存储过程来进行插入/更新/检索和删除。插入 SP 可以返回刚刚插入的记录的 id 作为out parameter
. 希望我能回答你的问题。
归档时间: |
|
查看次数: |
1011 次 |
最近记录: |