Currently, Document is used to represent two things which are mostly distinct, but have some functionality in common.
You would never use OpenAndUpdate on a session-locked document, because you could just open it and use cache, for example, but you can't use the cache methods on non-session-locked documents.
Document would represent session-locked documents. Update would be removed.
LockedDocument & SharedDocument would inherit some methods from a Document class. LockedDocument would implement caching and not expose protected methods from Document like Update, whereas SharedDocument would essentially be an UpdateAsync wrapper with migrations.
This would be a breaking changes.
Currently, Document is used to represent two things which are mostly distinct, but have some functionality in common.
You would never use
OpenAndUpdateon a session-locked document, because you could just open it and use cache, for example, but you can't use the cache methods on non-session-locked documents.Document would represent session-locked documents. Update would be removed.
LockedDocument & SharedDocument would inherit some methods from a Document class. LockedDocument would implement caching and not expose protected methods from Document like Update, whereas SharedDocument would essentially be an UpdateAsync wrapper with migrations.
This would be a breaking changes.