【问题标题】:Recommendations for C# database accessC# 数据库访问的建议
【发布时间】:2011-07-14 03:17:00
【问题描述】:

您好,我编写了相当多的 C#,但从未使用数据库。我想使用带有 C# 的 SQL Server 和一些框架。微软似乎在 C# 的整个生命周期中发布了许多框架。这让我很难搜索/选择。

我应该选择哪一个?我正在开发一个简单的 3 层 webapp。我看过一些 Entity Framework .Net 4.0 视频,但我觉得事情太自动化了。我需要时不时地做一些 SQL..

如果我应该选择 EF4.0,这真的是最好的参考吗http://msdn.microsoft.com/en-us/library/bb386876.aspx

有什么建议吗?

【问题讨论】:

标签: c# database entity-framework database-connection


【解决方案1】:

使用 Entity Framework 4 - 它是 SQL Server 数据库当前和未来的最佳方法。它是 WCF 数据服务的基础,而且概念模型的想法肯定会出现在其他 Microsoft 产品中(可能是 Reporting Services 和其他产品)。

它确实为您提供了很多钩子,让您可以“即时”执行 SQL 语句,并且您还可以将存储过程很好地集成到实体框架中。

对于“常规操作”的日常任务,它为您提供了不错的 C# 对象 - 基于您的数据库 - 可以使用。

在我看来,这是您目前的最佳选择 - 也是最灵活和选项最多的选择。您可以从数据库开始(“数据库优先”)并从现有表创建类;或者您可以从一个模型开始,让 EF4 为您生成数据库,EF v4.1(即将到期)还将提供“代码优先”开发,您甚至不需要可视模型,但您可以描述只需 C# 代码即可完成所有数据库对象和设置。

更新:

【讨论】:

    【解决方案2】:

    我会说从 Rob Conery 的 Sub Sonic 开始.. 它很容易上手..specillaly Simple Repository..

    网站链接:http://www.subsonicproject.com/

    使用 Sub Sonic 的简单存储库: http://subsonicproject.com/docs/Simple_Repo_5_Minute_Demo

    更新: 我已经看到一个提到 NHibernate 的答案,并想在此基础上添加一个小的补充......并且由于 OP 提到你对 C# 有很好的经验,我假设你有很好的 OOPS 知识以及对象之间的关系

    我个人觉得 NHibernate 与 Fluent NHibernate 一起使用时很容易开始,因此我也建议

    C# + NHibernate + Fluent Nhibernate....

    【讨论】:

    • 是的 subsonicproject.com/docs/Simple_Repo_5_Minute_Demo 看起来很漂亮...但是当示例/视频显示简单的插入/删除/获取时,我总是会怀疑。 join 和 where 子句发生了什么?甚至可能是嵌套选择?
    • 网站上的视频是一个很好的开始,我认为网上有很多资源可以帮助一个人继续进行更多的加入等......
    【解决方案3】:

    C#+ActiveRecord+NHibernate。隐藏多个 WCF 服务背后的实现。

    【讨论】:

      【解决方案4】:

      你说你想尝试一些“框架”,所以实体框架就是那个。这是 MS 经过多年研究提出的最佳实践的结果。当然,在此过程中,您可以随时将 SQL(Dataset)与 EF 一起使用(主要用于性能调优)。

      【讨论】:

        【解决方案5】:

        查看here,了解有关 .Net 的各种 ORM 框架的性能/基准的一些信息。

        【讨论】:

          猜你喜欢
          • 2013-08-10
          • 2019-01-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-28
          • 1970-01-01
          • 2011-12-26
          • 1970-01-01
          相关资源
          最近更新 更多