首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#数据库通信技术

C#数据库通信技术
EN

Software Engineering用户
提问于 2012-09-28 12:50:30
回答 4查看 2.8K关注 0票数 7

几天前,我读到了一个答案,它说在您的c#代码中编写查询早就消失了。

我不知道具体的人的评论是什么意思,但,这让我思考。在我工作的公司,我们维护一个包含对数据库的所有查询的程序集(让我们称之为查询)。该程序集由QueryService (检索正确的查询)程序集引用,而UnitOfWork程序集(数据库连接器类,我们有不同的连接器类用于SQL、MySQL等)引用该程序集。我们使用这三个程序集对数据库执行操作,所有查询/命令都是由C#代码编写的。

是否有更好的方法与数据库进行通信,是否有更好的方法与不同的数据库类型进行通信?

EN

回答 4

Software Engineering用户

回答已采纳

发布于 2012-09-28 14:27:56

ORMs只使用简单的数据库结构。在大多数情况下,我想这是可以的。如果像我一样,你需要从你的数据库中获取更多的东西,而不仅仅是选择/更新等等,那么我发现ORM不是一个很好的选择,它会使您的代码更长、更不清晰、更难管理……

另外,SQL脚本和sprocs本质上是数据库语言,当它们最适合手头的工作时,我们不应该害怕混合语言。

票数 4
EN

Software Engineering用户

发布于 2012-09-28 13:05:53

我敢猜测,这句话是在谈论奥姆s在数据库访问方面的崛起。

ORM将完成对数据库的所有通信,并在数据库和对象之间进行转换。

大多数ORM还将抽象出不同数据库之间的差异,因此您应该能够使用相同的代码。

用于.NET的ORM的例子有nHibernate实体框架 (尽管有很多)。

票数 10
EN

Software Engineering用户

发布于 2012-09-28 13:21:34

在.NET中需要提到的是LinQ -- C#编程语言中的一个特性。对于支持通用IEnumerable<T>接口的集合,它是非常强大的查询工具。

例如,LINQ到SQL (也称为Linq2Sql)和LINQ致实体都非常强大,而且熟悉它可以节省大量时间。

当您构建一个快速的数据驱动应用程序时,这是非常方便使用的工具。

编辑:要支持不同的数据库,您可能需要查找具有该功能的ORM解决方案。据我所知,nHibernate和最近的实体框架具有这种能力。

票数 4
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/166555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档