5

我在 Visual Studio 中使用 SQL Server。我正在制作一个网络应用程序。

我创建了一个包含表和关系的数据库。

我将需要在 C# 中编写能够进行选择、更新、删除、查询等功能的函数。有没有人对正确的方法来保持清洁和安全有任何见解?

我的意思是,我应该如何建立连接,我应该如何返回数据,处理故障等?

我发现的大多数教程似乎都没有使用最佳实践。

4

5 回答 5

6

您不使用ORM有充分的理由吗?实体框架Linq to SQLNHibernate等等。除非您正在执行一些非常复杂的 SQL 语句,否则 ORM 每次都是合乎逻辑的选择。它将处理连接,提供一定程度的安全性(即采取措施避免 SQL 注入),以及使您的代码更易于阅读和维护。

于 2013-01-14T21:23:46.910 回答
1

Microsoft 的最佳实践“du jour”是实体框架。否则,像 NHibernate 这样的 ORM 也是一个不错的选择。

于 2013-01-14T21:23:56.457 回答
1

几个选项:

  1. 实体框架,在许多地方都被认为是最佳实践。
  2. Linq to SQL,又是很好的实践。
  3. 其他 ORM,流行的通常是很好的做法
  4. 通过存储过程编写自己的后端接口,这不是最佳实践,也绝对不是节省时间,但如果您不熟悉 ORM 及其较小的应用程序,这可能会更快。

编辑: 最佳做法是不要使用内联 SQL 查询,我错误地说它们会为 SQL 注入打开漏洞,但如果你做对了,你可以安全地这样做。我应该说的是,如果您正在尝试最佳实践,请不要使用它们。主要是因为下线,其他一些程序员可能正在处理您的代码,看到您执行了内联 SQL,如果他们不知道 SQL 注入,他们可能会做出允许漏洞的更改。通过完全避免内联 SQL,您不仅可以避免在安全方面犯错,而且它在某种程度上是一种防御性编程技术,因为如果您不使用内联 SQL,未来的程序员不太可能使用它。第一名。希望那不会令人困惑:)

于 2013-01-14T21:29:32.460 回答
1

如果它是一个相对较小/简单的应用程序,也许您不需要像 NHibernate 或实体框架这样的成熟 ORM。

您可以改用 Micro ORM。这些是更简单的库,不能提供 EF 和 NH 可以做的所有事情,但它们都能够将查询映射到对象列表。
如果您的应用程序不是超级复杂,也许这对您来说已经足够了。

最知名的 .NET 微 ORM 是:

于 2013-01-14T21:32:19.223 回答
0

在我看来,使用表和关系最简洁的方法是使用 ObjectDataSource,然后使用 Databind 来控制并将所有查询放入 SP。

二是使用Entity Framework和Linq-to-SQL

将连接字符串放入 web.config 文件,并使用 Singleton 类获取 Connection 对象。

于 2013-01-14T21:27:11.323 回答