0

我不是在寻找任何可以做任何花哨的查询的东西,使用最先进的 C# 有趣的业务来生成精巧的查询,自动将类映射到数据库表,或者任何可以处理必须的元数据负载的东西由开发人员配置。事实上,我希望 ORM 不知道我正在使用 C# 的事实。

相反,我希望能够执行简单的命令来执行基本的 SQL 任务,例如:

  1. 处理与 SQL Server 的连接并执行动态 TSQL 语句的类。
  2. 代表数据库的类,具有创建数据库、删除数据库、查找、添加或删除表等功能。
  3. 一个类来表示数据库中的表,添加列,删除列等。

但是,这些中的每一个都最好像提供字符串一样简单:

connection = new ConnectionToSQLServer(connectionString);
database = connection.FindDatabase("MyDatabase");
foreach(Table table in database.Tables())
{
     table.AddColumn("MyColumn", typeof(String), COLUMNS::NOT_NULL)
     ...
}

在处理 SQL 和 C# 时,有没有类似的东西?我并不十分担心拥有一台性能最好的设备。

4

4 回答 4

5

您所描述的不是ORM。ORM 是一个对象关系映射器。也就是说,它专门设计用于将数据库表和查询​​映射到它所设计的任何语言的对象。此外,您提到的其他内容(DDL 内容)通常不是 ORM 的一部分(这不是硬性规则,因为在某种程度上,实体框架之类的东西可以处理数据库模式升级)。

如果您的目标是 SQL Server,则可以查看SQL Server Management Objects以使用托管 API 与 T-SQL 语句来处理数据库和服务器维护任务,但这显然特定于 SQL Server 和 .NET 语言。

关于您列表中的第 1 项,您正在寻找尚未随DbConnection/DbCommand/DbDataReader/etc.课程提供的内容是什么?

于 2013-02-17T22:09:22.457 回答
0

我做过类似的事情。我有一个执行所有简单 SQL 函数(插入、更新、选择……)的 DLL。编写一个表示 SQL 函数的方法并不难。我的建议是对列值使用 string[],对列标题使用匹配的 string[]。那可以处理该addColumn级别的功能和其他功能。至于ConnectiontoSQLServer,似乎几乎可以处理SqlConnectionSqlCommand您可以将连接字符串传递到您的addColumn方法中,并且只有两个 using 语句:

using (SqlConnection connect = new SqlConnection(connection))
{                                                                                                                         
   using (SqlCommand command = new SqlCommand(insert, connect))
   {

至于FindDatabase,同样的事情?C# 已经有了SqlConnectionSqlCommand. 无论如何,您所需要的只是字符串,这再简单不过了。

于 2013-02-18T18:41:05.873 回答
0

一定要看看 SQL Data ( http://sqldata.codeplex.com )。我认为您会发现它可以处理您的所有需求,而不会出现典型 ORM 的臃肿。确实,处理 DDL 操作并不是真正的标准做法,但它肯定可以在数据库上执行任何命令。

(披露:我是 SQL Data 的作者)

于 2013-10-12T20:45:15.497 回答
0

您可以先使用 ASP.net MVC 和实体框架代码,它会在您编码时生成数据库和表,并且可以为您处理 CRUD 编码,因为您可以专注于整个应用程序。

在此处查看有关 ASP.net MVC EF的更多信息。以及更多关于代码中 CRUD 的信息

于 2015-09-19T05:50:53.453 回答