没有插入或更新的实体框架和表

时间:2015-03-31 18:50:49

标签: c# entity-framework

如何告诉实体框架它不应该创建或修改表中的行,同时允许它读取数据并为其创建对象?

我看到的唯一可能就是将所有列设置为Computed,这是正确的方法吗?

1 个答案:

答案 0 :(得分:2)

有几种方法,一种方法可能是覆盖您的保存更改并捕获任何保存实体的尝试

var changeSet = ChangeTracker.Entries<IDoNotSave>();

        if (changeSet != null)
        {
            foreach (var entry in changeSet.Where(c => c.State != EntityState.Unchanged))
            {
                entry.State = EntityState.Unchanged;
            }
        }

然后只需将IDoNotSave界面添加到您不想更改的实体中。上面应该捕获添加,删除或修改的尝试。任何保存对实体的更改的尝试都应该无声地失败。当然,如果符合要求,您可以抛出错误而不是将EntityState更改为Unchanged。