0

我正在使用实体框架代码优先(非自动生成)并且我正在尝试在我的OnModelCreating事件中映射一些属性。大多数属性都来自 SQL Server 表,但是有一个字段我想从视图中包含在我的模型中,我已经这样做并将其设置为[DatabaseGenerated(DatabaseGeneratedOption.Computed)].

但是 EF 尝试更新视图,我如何告诉 EF 不要更新我的视图并将其视为只读,我得到的错误是......

无法更新视图或函数“VIEWNAME”,因为它包含聚合、DISTINCT 或 GROUP BY 子句、PIVOT 或 UNPIVOT 运算符

我可以看到很多东西可以使您的视图可更新,但不能仅将其视为只读

更新

在尝试了一些我[DatabaseGenerated(DatabaseGeneratedOption.Identity)]在模型中定义属性时添加到属性中的东西之后,这似乎已经完成了这个技巧,虽然将它设置为 Identity 对我来说并没有太大意义,但将其设置为计算但似乎正在工作。

4

1 回答 1

0

你在你的房产上试过这个吗?

public virtual string MyProperty { get; internal set; }

这样实体消费者就无法改变它。

于 2013-11-01T14:46:09.593 回答