gpt4 book ai didi

c# - 我不明白持久独立性的意义

转载 作者:太空狗 更新时间:2023-10-29 21:35:18 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
What are the benefits of Persistence Ignorance?

在尝试找出 Entity Framework 一段时间并提出一些问题后,我得出的结论是我只是不明白持久性无知对象的意义所在。

据我所知,使用持久性感知对象和持久性无知对象之间的实际区别在于,一个人会使用类似

Person p = Person.Load(id);
p.Active = false;
p.Save();

另一个是按照

using (var context = new MyContext())
{
Person p = context.Persons.Single(x => x.ID == id);
p.Active = false;
context.SaveChanges();
}

在第一种情况下,我可以返回 p,并在稍后调用 Save()。在后者中,我可以返回 p,但我需要将它放入新的 MyContext() 中以保存它。在第一种情况下,假设 Person 从一些实际处理数据库逻辑的基础对象继承 Load() 和 Save() ,如果我想改变持久性,它只涉及改变那个基础对象(或者甚至只是有一个 IPersistent 多个基类可以实现访问多个商店的接口(interface))。在后者中,如果持久层发生变化,我将需要更改 MyContext 的每个实例,而且零碎地进行会非常复杂。

我的印象是,执着-无知是件好事。我只是不明白为什么。似乎设置、使用、更改批发和零碎更改要复杂得多,这种复杂性没有任何优势。我只是遗漏了一些重要的东西,还是我对持久性感知/无知意味着有缺陷的全部理解?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com