我将模型保存在模型程序集中,并将DTO类保存在DTO程序集中。两者都在WebAPI项目中引用,并在那里创建映射。 WPF客户端只引用DTO程序集。
我的实体有一个' Id' identity属性和我将访问修饰符设置为internal,以便id仅在模型程序集中设置(由EF6支持)。甚至DTO中的Id也设置为内部。
问题是当DTO到达客户端时,Id为0.我是否需要将可访问性设置为公共?如果客户端更改id并保存实体怎么办?这会导致问题。
还有其他选择吗?
答案 0 :(得分:0)
Id
字段不应该只在服务器和客户端中读取。
它们必须由EF设置在服务器中,并且在序列化程序的客户端中设置,因此您不希望使其无法访问。 如果您不希望用户弄乱它,我会说只是使用[Obsolete]属性或其他一些警告用户的方法来标记它,但您应该保持它可见并且可编辑。