我有一个 ASP.NET 3.5 应用程序,我希望允许用户选择一个表并允许对该表进行 CRUD 操作。用户将被限制在多个表中进行编辑,但是这些表甚至数据库在部署之后才会被知道;web.config 将设置连接和表。
所以我需要构建一个允许更新 SQL 数据库中的通用表的框架。我见过的大多数 ORM 都需要在编译时知道架构,所以我不能使用这些。最好的答案似乎是动态构建 SQL 查询字符串并使用 reg 表达式来确保有效输入并防止 SQL 注入。有没有更好的办法?
我有一个 ASP.NET 3.5 应用程序,我希望允许用户选择一个表并允许对该表进行 CRUD 操作。用户将被限制在多个表中进行编辑,但是这些表甚至数据库在部署之后才会被知道;web.config 将设置连接和表。
所以我需要构建一个允许更新 SQL 数据库中的通用表的框架。我见过的大多数 ORM 都需要在编译时知道架构,所以我不能使用这些。最好的答案似乎是动态构建 SQL 查询字符串并使用 reg 表达式来确保有效输入并防止 SQL 注入。有没有更好的办法?
是的。数据集和数据表对象怎么样?您可以通过动态 sql 语句填充这些内容,将它们直接绑定到一个好的编辑器网格控件,并且模式和列数据类型检查应该很容易。在 ORM 和 Linq 之前我们做过什么?!?!
动态 Linq 库令人难以置信。您可以将所有内容指定为字符串,除了表名。
(来源:scottgu.com)
http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx
但是,请在此处查找有关如何通过动态映射 DataContext 在运行时选择表的想法:
http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/09/27/25294.aspx