我看过很多文章/帖子,建议在使用EF时每个请求不要有多个上下文。
为记录目的设置第二个上下文是否有效,例如'user x did y','从z'登录失败等。
这背后的基本原理是,即使在使用“主”上下文时出现错误,我也希望记录这些错误,即。外键问题等。
还有另外一种方法可以做到这一点,或者如果我走这条路是否有任何可以尝试和避免的事情?
答案 0 :(得分:4)
如果您的应用程序逻辑确实需要它们,您可以始终拥有更多上下文实例,并且即使主上下文中的无效数据也能够将日志持久保存到数据库,也可以视为这种情况。您只需要确保您的更新不在同一事务中运行(它们也必须使用不同的数据库连接) - 除非您使用TransactionScope
,否则这应该是默认行为。