我有以下课程:
[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)在另一个程序集中。因此,所有属性都必须是public get / set。
Id是一个标识列,由db设置并自动化。但是我不希望用户更改id。
当用户使用dto时,是否可以在属性上设置属性以将属性设置为只读?
答案 0 :(得分:1)
您可以使用受保护的集合:
[DataMember()]
public int Id { get; protected set; }
并确保字段仅在构造函数中设置...
答案 1 :(得分:1)
在定义访问者时,您始终可以更具体地访问属性。使用代码中的Id
。这看起来像这样:
[DataMember]
public int Id { get; private set; }
你不能使属性的getter / setter比属性本身更少限制,例如。
[DataMember]
private int Id { public get; set; }
答案 2 :(得分:0)
[DataMember()]
public int ID{ get; private set; }