我写了一堆复杂的业务规则和计算,它们在内存中占用了大量数据和进程。我想知道如何将结果同步到数据库,最好是使用Entity Framework。
DatabaseTables - > EF - >型号/列表/等 - >计算 - > ?? - > DatabaseTables
我的目标是做这样的事情:
使用Entity Framework将一堆各种数据加载到内存(模型对象)中。这将包括我正在处理的数据,各种规则,查找列表,计算逻辑等......这不是一个庞大的数据量(它将全部适合内存)。
将所有数据传递给“计算”例程。这将通过所有的规则,逻辑等..并计算的东西。这可能涉及更新值,添加行,删除行,根据先前计算的结果重新计算等等。
然后将所有更改保存回数据库。考虑到变化,添加,删除。
现在,我已经使用Entity Framework做了一些事情,并熟悉使用EF加载对象及其实体的子级图(Order及其OrderItems)的基础知识。但是根据我的发现,EF有一些限制(它可以跟踪修改,有时它可以跟踪列表的插入,它只能跟踪删除,如果你调用dbContext.delete,它不能跟踪列表中的删除。
最大的问题是我不希望我的“计算”逻辑绑定到EF来从EF dbcontext对象添加/更新/删除。我希望我的“计算”逻辑只处理我的模型类并从标准List(模型)类中添加/删除。你可以说我想要新版本的数据表。在我加载数据的地方(可能有多个表值),从中进行一堆添加/更新/删除,然后进行保存更改。
请帮忙,EF看起来很棒,但有些事情看起来很难。