Wpf 实体框架在科学(数值)处理程序中的应用

Wpf 实体框架在科学(数值)处理程序中的应用,wpf,entity-framework,optimization,inotifypropertychanged,Wpf,Entity Framework,Optimization,Inotifypropertychanged,关于使用实体框架(EF)来持久化数据,我有一个发人深省的问题。我的(预期的)应用程序不是一个典型的LOB场景,其中标准CRUD操作是在单个记录上完成的 相反,我想使用存储在实体中的数据,通过组合多个实体上的数据创建一些矩阵,并进行一些密集的数值计算。在这个密集的过程中,实体上的属性将不断被访问和更新 我担心的是,访问/更新EF实体上的属性会严重降低整个操作的速度,因为所有的延迟加载、NotifyPropertyChanged和PropertyChanged、PropertyChanged函数调用

关于使用实体框架(EF)来持久化数据,我有一个发人深省的问题。我的(预期的)应用程序不是一个典型的LOB场景,其中标准CRUD操作是在单个记录上完成的

相反,我想使用存储在实体中的数据,通过组合多个实体上的数据创建一些矩阵,并进行一些密集的数值计算。在这个密集的过程中,实体上的属性将不断被访问和更新

我担心的是,访问/更新EF实体上的属性会严重降低整个操作的速度,因为所有的延迟加载、NotifyPropertyChanged和PropertyChanged、PropertyChanged函数调用以及对EF上下文对象上的SaveChanges函数的调用。。。关于标准C#对象

有没有想过如何以牺牲EF提供的一些细节为代价来缓解速度问题

问候,,
首先,您需要避免实体之间的引用,并且不要使用生成的实体。考虑使用POCO(普通老C对象)和实体框架代码第一方法。这允许您控制实体框架将通过实体调用的所有代码。可能这个链接有助于不要过早地优化。试试看。延迟加载可以关闭,并且更改跟踪不会产生巨大的开销。是的,如果需要,您可以使用POCO,但是基于想象中的性能问题做出这样的决定将是一个巨大的错误

也就是说,从依赖关系管理的角度来看,我认为不让业务逻辑依赖于持久性存储是一个很好的决定。不过,您不需要使用POCO实体来实现这一点;您可以使用任何类型的实体创建业务类型