[英]C# DTO with read only property
我有以下课程:
[DataContract()]
public partial class User
{
[DataMember()]
public int Id { get; set; }
[DataMember()]
public string Name { get; set; }
[DataMember()]
public string Surname { get; set; }
}
我的DTO类在一个程序集中,而我的模型(EF)在另一个程序集中。 因此,所有属性都必须是公共获取/设置的。
Id是一个标识列,由db设置并自动映射。 但是,我不希望用户更改ID。
当用户使用dto时,是否可以在属性上设置一个属性以将属性设置为只读?
您可以使用受保护的集:
[DataMember()]
public int Id { get; protected set; }
并确保仅在构造函数中设置字段...
在定义访问器时,始终可以使属性的访问更加具体。 使用代码中的Id
。 可能看起来像这样:
[DataMember]
public int Id { get; private set; }
您不能使属性的getter / setter限制比属性本身的约束少,例如
[DataMember]
private int Id { public get; set; }
[DataMember()]
public int ID{ get; private set; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.