在EF(代码优先)中似乎发生了很多变化,因为很多关于SO的问题都是写的......很多都是指EF4而我使用的是EF6,我知道存储过程是EF6中的一个新功能。
我的应用程序定期调用Xml Web服务并简单地将对象转储到数据库中;我为每个Xml类型都有一个C#对象,它使用EF直接映射到一个DB表。
可以创建或更新对象,具体取决于它们是否已存在于数据库中。我的应用程序对对象的内容不感兴趣,并且不将它们保存在内存中,因为它可能一次运行数周。
在这种情况下,创建或更新对象的有效方法是什么?我想象每次轮询Web服务时都会创建(并处置)我的DbContext
,因此永远不会知道数据库中有哪些对象。在非EF世界中,我可能会创建一个存储过程CreateOrUpdate(...)
,所以我想知道是否存在简单的并行。
我不需要使用EF存储过程,但听起来这可能是一个更好的主意。由于我们并不习惯使用EF,并且我们的所有模块都没有使用它,因此在数据库中存储过程以防其他人想要使用它们似乎很有用。