首页 / 知识
关于c#:NHibernate或LINQ to SQL
2023-04-14 18:56:00

NHibernate or LINQ to SQL如果开始一个新项目,您将对ORM NHibernate或LINQ使用什么以及为什么使用它。 各自的优缺点是什么。 编辑:LINQ to SQL不仅限于LINQ(感谢@Jon Limjap) 我问自己一个非常类似的问题,除了我不是在考虑NHibernate,而是在考虑WilsonORM,我认为它很好。 在我看来,有许多重要的区别。 LINQ:
NHibernate的:
真的要看如果您开发一个Rich(Windows)桌面应用程序,需要在其中构造对象,使用它们并最后保留它们的更改,那么我建议您使用NHibernate之类的ORM框架。 如果您开发的Web应用程序通常只查询数据,并且偶尔将一些数据写回到DB,那么我建议您使用像Linq这样的查询语言。 因此,一如既往,这取决于。 :-) 嗯...有NHibernate的LINQ。 也许您的意思是使用哪个:
我更喜欢NHibernate。 LINQ to SQL是相当轻量级的,但是它与您的数据结构紧密耦合,而NHibernate相对于NHibernate而言,后者在可以映射到表结构的对象定义类型方面非常灵活。 当然,这并不是说LINQ to SQL没有用:这个网站正使用它。我认为,在数据库架构不那么庞大的小型应用程序中启动和运行非常有用。 从NHibernate开始是个坏主意。仅通过适当的设置才能显示出良好的性能。尝试将EFv4用于大型项目,将L2S(也许是第三部分产品)用于中小型项目。这些产品比NHibernate更方便,更灵活,可让您快速入门。 清单不完整
LinqToSQL
缺点:
NHibernate的
缺点:
在两个ORM之间 如果出现以下情况,我会选择LinqToSql:
如果出现以下情况,我会选择Nhibernate:
注意:这是我的个人观点。我主要处理(疯狂的)旧式数据库和复杂的ETL作业,其中对象模型在SQL上有很大帮助。 NHibernate的主要缺点是无法使用方法调用。 它们不能转换为SQL。 为了避免这种情况,您必须重新创建表达式树,这很难做到。 我不使用(甚至不知道)NHibernate,我只是想证明一下:我使用LINQ to SQL大约两年了,用于MySQL和PostgreSQL数据库(在Windows上使用DbLinq,在Linux和Mac OS X上使用Mono)。 因此,LINQ to SQL不仅限于Microsoft产品。
我可以确认LINQ to SQL非常适合中小型项目,或者您可以完全控制数据库结构的大型项目。 注意:LINQ to SQL不支持多对多关系(但是,只需几行代码即可轻松实现)。 |
最新内容
相关内容
Python编程语言的优缺点
Python编程语言的优缺点,代码,网站,航空,管理系统,培训,系统,概念,网络,基础,机器人,Python是一种编程语言,它的名字来源于一个喜剧。是由GuidPython那些不得不说的优缺点
Python那些不得不说的优缺点,项目,代码,系统,公司,时间,语言,网络,人工智能,服务,精选,显著的优点Python语言拥有诸多的优点,这其中,以下几个优Python k-近邻算法的优缺点
Python k-近邻算法的优缺点,数据,样本,时间,有限,培训,异常,算法,近邻,容量,方法,优点pythonk-近邻算法简单,易于理解,易于实现,无需参数估计,无Python企业应用的优缺点
Python企业应用的优缺点,软件,企业,时间,代码,系统,网站,技术,发展,商业,面临,Python是软件开发领域一朵诱人的奇葩:人们经常把Python看作是一关于c#:您将如何实现IEnumerator接
关于c#:您将如何实现IEnumerator接口?,关于c#:您将如何实现IEnumerator接口?,对象,映射,的是,我现在,How would you implement the IEnum关于svn:您将如何为内部软件项目组
关于svn:您将如何为内部软件项目组织Subversion存储库?,关于svn:您将如何为内部软件项目组织Subversion存储库?,控制,公司,业务,文档,How关于 java:您将如何以编程方式从存
关于 java:您将如何以编程方式从存储在字符串中的日期创建模式?,关于 java:您将如何以编程方式从存储在字符串中的日期创建模式?,字符串关于c#:什么是在测试期间覆盖DateTim
关于c#:什么是在测试期间覆盖DateTime.Now的好方法?,关于c#:什么是在测试期间覆盖DateTime.Now的好方法?,日期,计算,我在,我有,What's a g您将如何在C ++中实现类似于Erlang
您将如何在C ++中实现类似于Erlang的发送和接收?,您将如何在C ++中实现类似于Erlang的发送和接收?,模式匹配,模型,如何实现,这个问题,H关于ios:难道仅iPhone模拟器仅限于I
关于ios:难道仅iPhone模拟器仅限于Intel的Mac?,关于ios:难道仅iPhone模拟器仅限于Intel的Mac?,芯片组,读到,限于,已阅,Is it just the iP关于版本控制:您是继续在分支机构还
关于版本控制:您是继续在分支机构还是在主干中进行开发?,关于版本控制:您是继续在分支机构还是在主干中进行开发?,分支,软件产品,最佳实关于makefile:并行make带来的问题并
关于makefile:并行make带来的问题并不总是在完成一项任务时就开始,关于makefile:并行make带来的问题并不总是在完成一项任务时就开始