数据集或实体数据模型

Vim*_*Vim 24 c# sql

请原谅noob问题,因为我不熟悉将数据与我的应用程序集成.我试图在网上找到答案,但还没有.

我有一个应用程序,我在VS2010上用C#开发,需要从数据库输入/输出数据.我试图弄清楚它在设置数据源时是否需要使用它的DataSet或实体数据模型.我的理解是,EDM允许我将数据库中的表/字段视为对象,但不知何故,我看起来也可以使用DataSet.

一些消息来源解释了DataSet创建了数据库的缓存副本,然后可以对其进行操作.

基本上我的问题是我应该使用哪个以及哪个(dis)的优点是什么?

Ric*_*ner 11

在向/从数据库存储和检索数据时,您可以使用多个选项:

  1. 在最简单的级别,使用ADO.NET打开与DB的连接,创建命令并执行它.如果你期望返回结果(即SELECT ...),那么你可以调用命令的ExecuteReader(...).以这种方式工作可以实现非常快速的执行和最小的开销,但是你必须做更多的繁重工作.如果您的应用很简单,这可能是一个很好的方法.如果您的应用程序是或者可能更复杂,您可能需要考虑其他选项......
  2. ADO.NET DataSet是一种合理的DB IO机制,尤其适用于从DB读取数据.但是,在尝试更新数据库时,它们可能有点麻烦.
  3. 您可以使用像nHibernate或Entity Framework这样的对象关系映射器(ORM),但是,坦率地说,这通常会导致您的学习曲线急剧增加,同时您会弄清楚如何将移动部件连接在一起并使它们一起工作.
  4. 您可能还会考虑一个名为Code First(CF)的实体框架的新变体:这使您可以设计代码,CF将生成您的EDM并处理构建系统所需的大部分数据库操作.Scott Hanselman在EF CF上写了一篇很好的介绍.

在过去的20多年里,在Windows上使用了几乎所有的DB API和ORM,我很高兴CF正在如何形成!几周前发布的EF 4.3包括对CF的一些重要的新改进,包括允许您随着其发展而处理对数据库模式的更改的迁移.在过去的几个月里,我使用EF CF构建了3-4个系统,我非常高兴 - 这是我目前最喜欢的关系数据库IO机制.

如果你想真正进入EF CF,我强烈推荐Julia Lerman的书EF CF - 它是一本简短,写得很好,非常有用的指南,你应该花费不到一两天的时间来完成主要部分.

希望这可以帮助.


dyl*_*anT 6

如果将LocalDB数据源添加到项目中(因为您需要一个小的本地数据库文件),则在弹出"数据源配置向导"时,它会明确询问您是否要使用数据集或实体数据模型数据库模型.这是你面临的情况吗?这就是我带来的问题.

毫无疑问,对于企业级应用程序或网站,您可能想要调查ADO.NET或ORM,但它无助于回答这个问题,这与选择数据集与数据集之间的区别有什么关系向导中的实体数据模型.

实质上,实体数据模型是最新的技术.如果您不熟悉数据集,那么可能不是开始使用它的时候了.


kaj*_*kaj 2

如果您想知道 ADO.NET(数据集)与 EntityFramework(实体数据模型)的优缺点是什么,那么ADO.NET Entity Framework 或 ADO.NET上的讨论可能会有所帮助

EF 会让你很快地启动并运行,但根据我(非常有限的)经验,维护起来很痛苦。

是什么决定了你只有这两个选择?还有更多可用的东西,包括许多 ORM。