ORM:我为什么要用它?

Cri*_*ris 2 sql orm entity-framework

可能重复:
有没有充分的理由不使用ORM?
你为什么要使用ORM?

您好,我在SQL开发多年(许多不同的SQL服务器,如Oracle,MSSql,Mysql),我一直很高兴这样做.我最近看到很多关于ORM的东西,我问我为什么要走向这个世界.你能不能花时间学习一种不同的方式来做我今天已经做过的事情,能给我一些好处吗?在此先感谢c.

Abe*_*bel 5

如果你写这样的东西,这些年来:

string query = "SELECT * FROM myUsers WHERE Name = '" + aName + "'";
ResultSet result = sql.Execute(query);
UserList users = TransformResultSetToUsers();
Run Code Online (Sandbox Code Playgroud)

那么你是时候找到一个合适的ORM(并且非常害怕SQL注入攻击).

ORM为您做的是隐藏方法,安全性,性能,缓存,映射等,否则将花费大量时间来自己编程.这样做怎么样:

User currentUser = DaoUsers.GetUserByName(aName);
currentUser.Name = "new name";
DaoUsers.UpdateUser(currentUser);
Run Code Online (Sandbox Code Playgroud)

它涵盖了所有查询,更新等.如果您在家中使用MySQL进行测试,并且在使用SQL Server时,您需要做的就是更改连接字符串.哦,它提供缓存(在像NHibernate和其他人的情况下),这使得闪电更快,如果不需要,甚至不会触及数据库.

总而言之:使用ORM意味着更容易.不用担心了.没有更多错别字.让ORM引擎处理所有事情.从对象设计数据库,而不是从"CREATE TABLE"语句设计数据库.专注于编程逻辑,而不是担心SQL的多样性.

最重要的是:类型安全,如果你使用ORM与类型安全的面向对象的语言,这将让编译器捕捉到错误之前,你甚至开始调试他们.