A disconnected model is only really needed in the absence of a properly-defined database interface. We, as developers, create a rod for our own backs by insisting on treating a database in a way we wouldn't treat an object, let alone an assembly or namespace.
Read more...