当前位置:  开发笔记 > 编程语言 > 正文

查找或创建数据库项的模式是什么?

如何解决《查找或创建数据库项的模式是什么?》经验,为你挑选了1个好方法。

如果有,那么Find-Or-Create的C#成语是什么?伪代码:

private IEntity FindOrCreateEntity(int id, object properties)
{
    Entity foundEntity = _db.Find(id);
    if (foundEntity == null)
    {
        foundEntity = _db.Create(properties);
    }
    return foundEntity;
}

我不喜欢以相同的方法查找和创建存在.



1> CodeCaster..:

我不喜欢以相同的方法查找和创建存在.

然后不要这样做?

您现在有一个方法可以查找要查找的对象的ID,也可以使用一堆属性来填充新实例.至少可以说这令人困惑.

如果调用者认为ID应该返回现有记录,但它不存在(如果已经存在)怎么办?然后它将继续生存在它正在处理现有记录的假设上,而实际上记录在数据库中还不存在.

让调用者遵循这种模式:

var entity = _repository.Find(id);
if (entity == null)
{
    entity = _repository.Create();
}

如果没有,你可以给IEntity一个实现一个IsNew属性,返回是否Id == default(TId).

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有