3

在 Northwind 示例的 Customer DTO 中,有一个Email合成字段——即它不是来自数据库。此处代码:https ://github.com/ServiceStackApps/Northwind/blob/master/src/Northwind/Northwind.ServiceModel/Types/Customer.cs

但是在运行示例中查看时,此字段不可见: http: //northwind.servicestack.net/query/customers

我注意到这个 DTO 有 [DataContract] 和 [DataMember] 注释,而大多数其他示例没有。

如何将合成字段添加到 AutoQuery?只需添加一个带有 pupulated getter 的方法就会给我一个错误,因为 ServiceStack 会尝试从数据库中获取它。是否应该使用“忽略”注释?或者最好的方法是将“DTO-for-database”和“DTO-for-the-service”分开,并以某种方式在它们之间使用 AutoMapper?

4

1 回答 1

2

是否应该使用“忽略”注释?

正是这样,当您想忽略序列化中的属性时,用于忽略在OrmLiteAutoQuery[Ignore]中使用的字段。[IgnoreDataMember]

Email字段未显示,因为它在类中没有[DataMember]字段,[DataContract]这是使用 ServiceStack.Text 在序列化中忽略字段的方法之一。

于 2019-03-19T17:22:04.183 回答