在罗斯文(Northwind)示例的客户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]批注,而其他大多数示例则没有。
如何将合成字段添加到自动查询中?仅添加一个带伪造的吸气剂会给我一个错误,因为ServiceStack试图从数据库中获取它。是否应使用“忽略”注释?还是最好的方法是将“用于数据库的DTO”和“用于服务的DTO”分开,并以某种方式在它们之间使用AutoMapper?
答案 0 :(得分:2)
是否应该使用“忽略”注释?
确切地说,当您想在序列化中忽略该属性时,请使用[Ignore]
忽略该字段在OrmLite或AutoQuery中的使用,而[IgnoreDataMember]
则是。 >
Email
字段未显示,因为它在[DataMember]
类中没有[DataContract]
字段,这是ignore fields in Serialization with ServiceStack.Text的方法之一。 / p>