I can't reproduce it with this test:
[Test]
public void NullableDateTimeTest()
{
CustomerEntity newCustomer = EntityCreator.CreateNewCustomer(1);
newCustomer.TestRunId = _testRunID;
AddressEntity newAddress = EntityCreator.CreateNewAddress(1);
newAddress.TestRunId = _testRunID;
newCustomer.VisitingAddress = newAddress;
newCustomer.BillingAddress = newAddress;
OrderEntity newOrder = new OrderEntity();
newOrder.Customer = newCustomer;
newOrder.OrderDate = DateTime.Now;
newOrder.RequiredDate = DateTime.Now;
newOrder.TestRunId = _testRunID;
Assert.IsTrue(newOrder.Save(true));
OrderEntity fetchedOrder = new OrderEntity(newOrder.OrderId);
Assert.IsTrue(fetchedOrder.SetNewFieldValue("RequiredDate", null));
Assert.IsTrue(fetchedOrder.Save());
OrderEntity fetchedOrder2 = new OrderEntity(newOrder.OrderId);
Assert.IsTrue(fetchedOrder2.TestOriginalFieldValueForNull(OrderFieldIndex.RequiredDate));
Assert.IsNull(fetchedOrder2.Fields["RequiredDate"].DbValue);
Assert.AreEqual(DateTime.MinValue, fetchedOrder2.Fields["RequiredDate"].CurrentValue);
}
Initially I set the field to a value (RequiredDate). Then I fetch the entity (like you do), set the field to null, then save it again. Works. I refetch it, to see if the field was set to null. Works... Could you please check if I perform the right test here?