有没有办法使用Fluent API创建字段ReadOnly?我目前正在使用DataAnnotations,
[ReadOnly(true)]
但我想用Fluent API做到这一点。请帮忙!
答案 0 :(得分:0)
如果你的意思是DbModelBuilder
的流畅界面,那么没有,你 cant 。
ReadOnlyAttribute
不属于DataAnnotations(system.componentmodel.dataannotations
),这也是您无法做到的原因之一。 DbModelBuilder流体接口将申请Entity相关属性,其中ReadOnly不属于。
它的另一部分是“只读”不是数据库中列的公共属性。如果没有等效的话,c#属性“只读”应该如何转换为列? (一种方法通常是为btw实现触发器,但事实并非如此。锁也是一个类似的功能,但不是一回事,因为值可以改变)。
如果您担心在这种情况下同时拥有DataAnnotations和Fluent API,请不要担心,因为(至少我认为)ReadyOnly 不应该在实体配置中。它不是通用数据库逻辑的一部分。
我会说保留DataAnnotation。
重新构建:如果您确实需要阻止该字段中的更改,请使用本机SQL(触发器等)执行此操作,因为开发人员通常必须在此处使用本机SQL。