We have an issue that was introduced when we added "True Properties" feature.
Unfortunately while using Recursive Fakes accidentally caused a faking of a property that has implementation inside MsCorLib.
The solution is quite simple - use Members to set a different behavior for example:
var exception = Isolate.Fake.Instance<SqlException>(Members.CallOriginal);
Isolate.WhenCalled(() => fakeCommand.ExecuteReader(0)).WillThrow(exception);
We have another issue in the test - when the test host finish running DbConnection.Finalize is called. This issue only happens in MSTest
I suggest you use MustSpecifyReturnValues, CallOriginal or ReturnNulls
when creating SqlCommand.
We are working of fixes for both bugs at the moment