首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用DB-first在.NET中实现DAL

用DB-first在.NET中实现DAL
EN

Stack Overflow用户
提问于 2011-07-25 19:34:31
回答 1查看 199关注 0票数 0

我正在从事一个拥有大约30个表和大约100个存储过程(MSSQL)的数据库的项目。

  1. 所有DAL代码都是使用数据访问应用程序块实现的。我认为,即使我只需要在现有的表中添加一个新字段,这种方法也需要花费太多的时间。首先,我必须更新DB脚本,然后我必须检查代码中的SP包装器和/或查询,以反映我的更改。
  2. (90%)是这样的:

//“成语#1”用于我的项目公共静态DataSet GetSomeData(int a,int b) {返回SqlHelper.ExecuteDataSet(连接,“从tab1中选择x,y”,其中a=“+ a.ToString() +”和b=“+b.ToString()”};

然后,当从某个地方调用它时:

//“成语#2”变量ds = DAL.GetSomeData(123,456);var t= ds.Tables;var x= t.Rows;var y= t.Rows;

我坚信这个想法是非常糟糕的,但我不确定正确的方法是什么。我绝对相信,我希望看到的至少是类型化的对象而不是DataRows,以及这些对象的集合而不是DataTables。我也确信我不想自己实现所有这些东西。

  • 几天前,我发现BLToolkit似乎解决了这个问题,但我不确定使用它是否好,因为我没有足够的经验。我真的很喜欢这个例子:

公共抽象类PersonAccessor : DataAccessor { SqlText(@"SELECT * FROM Person FirstName = @firstName")公共抽象列表GetPersonListByFirstName(string @firstName);SprocName("sp_GetPersonListByLastName")公共抽象列表GetPersonListByLastName(string @lastName);.

虽然我不能称之为ORM,但这种方法是抽象的--足以让我想要它而不是现在的样子,但另一方面,它仍然相当low-level.

  • I've,也尝试了流利的NHibernate,虽然我真的很喜欢它的特性,但是它看起来真的很慢。

什么是正确的解决办法?优先事项是:

易于反映DB结构changes

  • Typed数据的
  1. ,而不是int.Parse(row[0][3].ToString())
  2. High性能
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-26 09:52:30

我建议您使用.NET ORM。您可以在这里了解关于选择ORM的更多信息:

NHibernate, Entity Framework, active records or linq2sql

使用ORM执行"SELECT * FROM Person WHERE = @ FirstName“不会显着地慢,而且您的开发速度可能会更快。

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

https://stackoverflow.com/questions/6821310

复制
相关文章

相似问题

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