【发布时间】:2016-03-20 05:38:35
【问题描述】:
Entity Framework 和 ORM 的新手,但可能有一个独特的情况,我们正在考虑重构我们的应用程序的工作方式。
现在我们正在使用内存中分布式缓存架构,基本上作为内存数据库,效率相当低且容易出错,因此与持久数据的同步,甚至缓存中的对象都不一致。
我们的想法是回到核心,要么集成某种形式的 ORM,如实体框架,要么在 SQL 中手动创建存储过程,以引入创建复杂类所需的数据。
例如,假设我们有一个 SomeDashboard 类,它将具有许多基于请求的 Dashboard 设置的属性(存储在 SQL 中),但随后有许多与 @ 相关的对象列表987654323@,例如Products 或Reviews 等。可以编写一个存储过程,该过程将利用单个数据库请求,该请求将拉回多个结果集以创建所有这些列表和对象值。
最好是创建存储过程来执行此操作,还是创建多个存储过程来分段获取数据(意味着更多的 SQL 调用),或者搭载 Entity Framework 来对所有对象在一起?
一些不稳定的东西,导致需要经常重建;每次我们构建对象时,担心数据库的扩展需要如此多的连接和如此多的请求。
也许这足以给出某种形式的方向;我知道它充其量是模糊的。
与实体框架相关的问题的另一部分是——将所有内容映射到现有数据库和类有多难?
从高层次上看……感觉内存分布式缓存的集成并没有经过深思熟虑,并且以“抢先优化”的方式完成,导致问题多于解决;所以回到根源并大量使用 SQL,然后在可能需要的地方有选择地集成缓存,当 SQL 的性能成为问题时似乎是最好的主意。
【问题讨论】:
标签: c# sql .net entity-framework ncache