Я наконец нашел проблему, netcfsvcutil генерирует свойство с именем PropertyName +, указанным для каждого свойства в сгенерированном dto. напр.
[System.Xml.Serialization.XmlElementAttribute(IsNullable=true, Order=20)]
public System.Nullable<int> SalesPersonId
{
get
{
return this.salesPersonIdField;
}
set
{
this.salesPersonIdField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool SalesPersonIdSpecified
{
get
{
return this.salesPersonIdFieldSpecified;
}
set
{
this.salesPersonIdFieldSpecified = value;
}
}
эти свойства не являются частью сущности, которая используется netcfsvcutil для генерации dto.
если propertyNameSpecified не равно true, значение свойства не сериализуется, поэтому я изменил свойства и добавил строку в Setter, которая проверяет, имеет ли свойство значение, и устанавливает значение свойстваNameSpecified в true, если оно имеет ниже:
[System.Xml.Serialization.XmlElementAttribute (IsNullable = true, Order = 20)]
public System.Nullable SalesPersonId
{
получить
{
вернуть this.salesPersonIdField;
}
набор
{
this.salesPersonIdField = value;
this.SalesPersonIdSpecified = (значение! = ноль);
}
}