我不是在寻找任何可以做任何花哨的查询的东西,使用最先进的C#搞笑业务来生成光滑的查询,自动将类映射到数据库表,或任何使用大量元数据工作的东西必须由开发人员配置。事实上,我希望ORM与我使用C#的事实无关。
相反,我希望能够执行简单的命令来执行基本的SQL任务,例如:
然而,这些中的每一个最好都是提供字符串的简单方法:
connection = new ConnectionToSQLServer(connectionString);
database = connection.FindDatabase("MyDatabase");
foreach(Table table in database.Tables())
{
table.AddColumn("MyColumn", typeof(String), COLUMNS::NOT_NULL)
...
}
在处理SQL和C#时是否有类似的东西?我并不十分担心有一台表现最好的设备。
答案 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
函数和其他函数。至于ConnectiontoSQLServer
,SqlConnection
和SqlCommand
几乎可以解决这个问题?您可以将连接字符串传递到addColumn
方法中,只需要两个using语句:
using (SqlConnection connect = new SqlConnection(connection))
{
using (SqlCommand command = new SqlCommand(insert, connect))
{
至于FindDatabase
,同样的事情? C#已经有SqlConnection
和SqlCommand
。无论如何,你所需要的只是字符串,它不容易。
答案 2 :(得分:0)
绝对要看一下SQL数据(http://sqldata.codeplex.com)。我认为你会发现它可以处理你所有的需求而没有典型的ORM。确实,处理DDL操作并不是真正的标准做法,但它当然可以在数据库上执行任何命令。
(披露:我是SQL数据的作者)
答案 3 :(得分:0)