Code first is a better approach, if only because it is simpler. If the system is maintaining an XML model, the database itself, and also a bunch of classes, there is more to go wrong. Plain text code is also easier to work with, for example in source code tools, diff tools (comparing two versions) and the like.