sti*_*k81 3 .net linq database nhibernate 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 的博客文章:
我有一些关于NHibernate和Silverlight的问题.这实际上是一个很容易回答的问题.
甚至不尝试.他们不相处.事实上,他们甚至都不会相处.
Silverlight没有System.Data.IDbConnection,你可以放心地认为它对NHibernate有点重要.
因此,在Silverlight应用程序中运行NHibernate,可能是为了访问本地数据库.但我不认为这是大多数人在询问NHibernate和Silverlight时的实际想法.他们想知道服务器上的NHibernate和客户端上的Silverlight.
这也很容易回答,它可以像任何客户端/服务器系统一样工作.所有相同的规则都适用.
因此,只要您不打算直接从Silverlight客户端使用它,NHibernate就应该工作.
NHibernate的:
NHibernate是一个很棒的ORM,但它有一个非常陡峭的学习曲线,所以如果你选择NHibernate,你应该准备花一些时间来学习框架.如果您进行投资,您将获得NHibernate提供的灵活性和强大功能.
Castle ActiveRecord:
Castle ActiveRecord是一个构建在NHibernate之上的框架,因此与NHibernate非常相似.它稍微减少了学习曲线,因为它增加了一些额外的抽象.顾名思义,它是与ActiveRecord模式一起使用的构建,并包含一个基类,如果您不介意使用它们的ActiveRecord基类,它将为您提供相当多的功能.
LINQ to SQL:
LINQ to SQL和ADO.NET实体框架是.NET Framework中包含的两个ORM.LINQ to SQL是一个比Entity Framework更小更简单的框架,但它有一些很好的功能,并且很容易上手.
实体框架:
实体框架也很容易上手,但它在当前版本中有一些相当大的问题,因为它仍然在版本1.但是,下一版本的实体框架将改进和修复当前的许多缺点.
框架的LINQ和模式生成:
所有这些框架都支持使用LINQ作为查询语言.LINQ to SQL和NHibernate可以根据您的域类和映射为您生成架构.实体框架无法在v1中生成架构,但v2将添加该功能.