ServiceStack AutoQuery 合成字段

ServiceStack AutoQuery synthetic field

在 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?只需添加一个带有 getter 的 pupulated 就会给我一个错误,因为 ServiceStack 试图从数据库中获取它。是否应该使用 "Ignore" 注释?或者最好的方法是将 "DTO-for-database" 和 "DTO-for-the-service" 分开,然后以某种方式在它们之间使用 AutoMapper?

Is there an "Ignore" annotation that should be used?

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

Email 字段未显示,因为它在 [DataContract] class 中没有 [DataMember] 字段,这是ignore fields in Serialization with ServiceStack.Text.