...my mistake, all of the above applies to wsHttpBinding as well. I was confident that the app was working fine so I deployed the services and re-run the test using wsHttpBinding and I received the same errors as before.
I am definitely trying re-save an existing entity which has all fields validated - I have log files which log this data immediately before the adapter.SaveEntity - but the save method incorrectly tries to do an INSERT INTO.
Here is the exception:
An exception was caught during the execution of an action query: The field 'tblProducts.LastModifiedBy' cannot contain a Null value because the Required property for this field is set to True. Enter a value in this field.. Check InnerException, QueryExecuted and Parameters of this exception to examine the cause of this exception.
Query: INSERT INTO [tblProducts] ([ProductNumber], [AccountNumber], [AccountProductNumber], [AccountDescription], [ExaltDescription], [GrossWeight], [Length], [Width], [Height], [IsActive], [ProductTypeID]) VALUES (@ProductNumber, @AccountNumber, @AccountProductNumber, @AccountDescription, @ExaltDescription, @GrossWeight, @Length, @Width, @Height, @IsActive, @ProductTypeId)
Parameter: @ProductNumber : String. Length: 20. Precision: 0. Scale: 0. Direction: Input. Value: "5039036029704".
Parameter: @AccountNumber : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Input. Value: 67.
Parameter: @AccountProductNumber : String. Length: 25. Precision: 0. Scale: 0. Direction: Input. Value: "5039036029704".
Parameter: @AccountDescription : String. Length: 75. Precision: 0. Scale: 0. Direction: Input. Value: "Young Riders Season 1 [DVD] [1989]".
Parameter: @ExaltDescription : String. Length: 75. Precision: 0. Scale: 0. Direction: Input. Value: "Young Riders Season 1 [DVD] [1989]".
Parameter: @GrossWeight : Double. Length: 0. Precision: 15. Scale: 0. Direction: Input. Value: 0.082.
Parameter: @Length : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Input. Value: 181.
Parameter: @Width : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Input. Value: 138.
Parameter: @Height : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Input. Value: 15.
Parameter: @IsActive : Boolean. Length: 2. Precision: 0. Scale: 0. Direction: Input. Value: True.
Parameter: @ProductTypeId : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Input. Value: 2.
As you can see the query in addition to it being an INSERT instead of UPDATE, does not include the field [LastModifiedBy] even though I can read and log the entity value just prior to doing SaveEntity.
So now i'm stuck. I don't know how to reliably perform update queries over WCF. Sometimes it works fine, and I have another application using netTcpBinding which has been working for over 6 months without issue.