C#有简单的SQL ORM吗?

时间:2013-02-17 22:05:34

标签: c# sql orm

我不是在寻找任何可以做任何花哨的查询的东西,使用最先进的C#搞笑业务来生成光滑的查询,自动将类映射到数据库表,或任何使用大量元数据工作的东西必须由开发人员配置。事实上,我希望ORM与我使用C#的事实无关。

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

  1. 用于处理与SQL Server的连接并执行动态TSQL语句的类。
  2. 表示数据库的类,具有创建数据库,删除数据库,查找,添加或删除表等的能力。
  3. 用于表示数据库中的表,添加列,删除列等的类
  4. 然而,这些中的每一个最好都是提供字符串的简单方法:

    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 个答案:

答案 0 :(得分:5)

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

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

关于列表中的#1,您正在寻找的是DbConnection/DbCommand/DbDataReader/etc.类尚未提供的内容?

答案 1 :(得分:0)

我做了类似的事情。我有一个DLL,它可以完成所有简单的SQL函数(插入,更新,选择......)。编写表示SQL函数的方法并不是非常困难。我的建议是使用字符串[]作为列值,并使用匹配的字符串[]作为列标题。这可以处理该级别上的addColumn函数和其他函数。至于ConnectiontoSQLServerSqlConnectionSqlCommand几乎可以解决这个问题?您可以将连接字符串传递到addColumn方法中,只需要两个using语句:

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

至于FindDatabase,同样的事情? C#已经有SqlConnectionSqlCommand。无论如何,你所需要的只是字符串,它不容易。

答案 2 :(得分:0)

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

(披露:我是SQL数据的作者)

答案 3 :(得分:0)

您可以首先使用ASP.net MVC和实体框架代码,这将在您编码时生成数据库和表格,并且可以为您处理CRUD编码,因为您可以将注意力集中在整个应用程序上。

详细了解ASP.net MVC EF here。 以及有关代码优先于here的CRUD的更多信息。