EF Code First Fluent API设置为只读?

时间:2014-07-08 18:37:15

标签: entity-framework fluent

有没有办法使用Fluent API创建字段ReadOnly?我目前正在使用DataAnnotations,

[ReadOnly(true)]

但我想用Fluent API做到这一点。请帮忙!

1 个答案:

答案 0 :(得分:0)

如果你的意思是DbModelBuilder的流畅界面,那么没有,你 cant

ReadOnlyAttribute不属于DataAnnotations(system.componentmodel.dataannotations),这也是您无法做到的原因之一。 DbModelBuilder流体接口将申请Entity相关属性,其中ReadOnly不属于。

它的另一部分是“只读”不是数据库中列的公共属性。如果没有等效的话,c#属性“只读”应该如何转换为列? (一种方法通常是为btw实现触发器,但事实并非如此。锁也是一个类似的功能,但不是一回事,因为值可以改变)。

如果您担心在这种情况下同时拥有DataAnnotations和Fluent API,请不要担心,因为(至少我认为)ReadyOnly 不应该在实体配置中。它不是通用数据库逻辑的一部分。

我会说保留DataAnnotation。

重新构建:如果您确实需要阻止该字段中的更改,请使用本机SQL(触发器等)执行此操作,因为开发人员通常必须在此处使用本机SQL。