为.NET项目选择数据库和ORM
我正在使用客户端Silverlight的.NET应用程序.现在我已经到了想要在服务器端抛出静态虚拟数据并添加数据库的地步.
对于数据库,我喜欢使用其中一个ORM,我可以简单地标记我的模型类,并为我构建数据库表.我之前用Groovy和Grails做了一些测试,并认为GORM做得很顺利.在.Net中设置数据库的最佳方法是什么? 让我印象深刻的第一件事就是使用nHibernate.我对nHibernate一无所知,但我听到很多人热情地提到它.但后来我发现ADO .Net也是一个内置于框架中的ORM .. nHibernate是否超越了ADO?和LINQ有什么关系?我看到它也被列为ORM,但我认为LINQ更适用于查询部分?我可以通过LINQ“定义”数据库吗? 欢迎提出任何意见和建议.我也很想听听你对使用什么数据库有意见.我假设MS SQL Server是最简单的选择? 解决方法NHibernate和Silverlight:其中一位NHibernate贡献者Ayende Rahien最近发布了关于NHibernate和Silverlight的a blog post:
因此,只要您不打算直接从Silverlight客户端使用它,NHibernate就应该工作. NHibernate的: NHibernate是一个很棒的ORM,但它有一个非常陡峭的学习曲线,所以如果你选择NHibernate,你应该准备花一些时间学习框架.如果您进行投资,您将获得NHibernate提供的灵活性和强大功能. Castle ActiveRecord: Castle ActiveRecord是一个构建在NHibernate之上的框架,因此与NHibernate非常相似.它稍微减少了学习曲线,因为它增加了一些额外的抽象.顾名思义,它是与ActiveRecord模式一起使用的构建,并且包含一个基类,如果您不介意使用它们的ActiveRecord基类,它将为您提供相当多的功能. LINQ to SQL: LINQ to SQL和ADO.NET Entity Framework是.NET Framework中包含的两个ORM. LINQ to SQL是一个比Entity Framework更小更简单的框架,但它有一些不错的功能,并且很容易上手. 实体框架: 实体框架也很容易上手,但它在当前版本中有一些相当大的问题,因为它仍然在版本1.但是,下一版本的实体框架将改进和修复当前的许多缺点. 框架的LINQ和模式生成: 所有这些框架都支持使用LINQ作为查询语言. LINQ to SQL和NHibernate可以根据您的域类和映射为您生成架构.实体框架无法在v1中生成架构,但v2将添加该功能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |