Honestly I don't want to be rude but you don't seem to know what you are talking about... The reason people use ORM's like entity framework is that it has all the features you need to abstract your code from the underlying database. You generate a model of your database and work with the generated entities, which means you have intellisense, type information, navigation properties for foreign keys, change tracking, transactions (and rollbacks), etc... If you decide to port your database to a another database engine, you get its EF-compatible database provider and port the database, and then just regenerate the model. And literally all the config it takes is a model you can generate from an existing database in 5 minutes, and a connection string in your app config, which you need anyway. And what does MySql not supporting SP's have to do with security?