1

我曾经是一名经典的 ASP 程序员,有时也是编写我的第一个 ASP.NET 应用程序的 PHP 程序员。我喜欢大大改进的 ADO.NET 函数,但我觉得有必要编写一个数据库类。一方面我想整合实际与数据库交互的代码,另一方面我想减少重复的感觉。

一个简单的数据库类并不难做,但我使用参数化查询作为我的安全措施之一。我正在努力解决如何将其纳入课程中。我编写了一个函数,通过传入表和列名来返回数据库中列的数据类型,但是我想不出一种从 SQL 查询中获取表和列名的可靠方法。

我对这个类的设计是有一个用于选择的 Query() 函数和一个用于插入/更新/删除的 Execute() 函数。(不反对拥有更多的公共函数,但不想超越自己。)这两个函数都采用 SQL 字符串和 SortedList 作为参数。可以通过在 SQL 字符串中查找参数名称并查看等号前面来获取列名称。同样,当查询是插入、更新或删除时,获取表名应该相当简单,因为您一次只使用一个表。最大的问题是选择,因为可能有一个或多个连接、内部选择等。

我是不是走错了方向?我没有想到的任何事情都会使我的生活更轻松或更困难?有人用任何可以提供一些建议的语言为此写了一个课程吗?

4

4 回答 4

5

不要重新发明轮子。查看nHibernateLINQToSQL(或LINQToEntities)以满足您的 ORM 需求。

于 2009-03-05T00:58:29.840 回答
1

会第二次打电话来寻找适合您的久经考验的轮子,特别是如果这是您第一次涉足 aspnet ……还有很多其他事情可以让您忙碌。

会为SubSonic添加一个建议,它可能比 nHibernate 轻一点,但这实际上取决于您的项目的性质,它们都是很棒的工具,并且在过去几年中都为我节省了几个月的工作。

于 2009-03-05T01:07:49.520 回答
1

我认为由于这是您在 ASP.NET 中的第一次体验,因此建议您研究一下 Linq to SQL。做一些教程,以便在尝试编写任何 Linq 查询代码之前了解它的工作原理。

我能想到的在您的情况下不使用 Linq to SQL 的唯一原因是您不使用 SQL Server(或者现在或将来需要支持其他数据库),或者由于某种原因您不能使用 .NET 3.5 运行时.

祝你好运

于 2009-03-05T01:46:13.717 回答
0

在我看来,您的“简单数据库类”向需要使用它的类隐藏了太多细节。

我编写了包含 SqlCeEngine 的类并公开了诸如“LookupDescription(String Code)”之类的方法……我认为这种设计是您应该研究的。并且,考虑研究 LINQ。它有很多东西可以提供。

于 2009-03-05T01:09:20.920 回答