我们的数据库管理员创建了一种模式,将我们的数据库层通过视图和CRUD存储过程暴露给EF。 CRUD针对视图进行操作。 所有视图都带有NOLOCK提示。据我所知,NOLOCK是脏读取,这让我很紧张。虽然我们的数据库不是高容量的,但似乎全局使用NOLOCK在保持数据完整性方面并不太可扩展。我知道解耦是一个好主意,但问题在于我们不知道。我们外部公开的对象看起来就像我们的视图,这些视图与我们的表一一映射。
“如果我们想要更改基础数据模型,我们可以。”…但我们没有。我不会触及从VS / EF工具角度来看这一切有多麻烦的问题。
在这种情况下使用NOLOCK是否不好?由于我们的数据库看起来与我们的类库完全相同,因此我认为直接从EF访问数据库并摒弃整个视图/存储过程层是有道理的,不是吗?