|
|
1
6
更好的方法实际上是使用存储过程,而不是将SQL硬编码到应用程序中。可以将where子句参数传递给存储过程,并在数据库端处理逻辑。 这种方法还提供了一个优势,即如果您在另一个应用程序(例如JAVA应用程序)中需要此逻辑,则该逻辑将集中在数据库中,因此您不必再次重写它。 |
|
|
2
3
也就是说,除非我能说服您使用像NHibernate这样的真正的数据访问层/ORM。
|
|
|
3
0
|
|
|
4
0
如果不想使用存储过程,至少要参数化where子句。这种代码很快就会失控。我还将考虑使用免费文本索引或类似LuxeN.NET之类的方法来实现跨多个字段的“类”搜索。 |
|
|
5
0
如果您想继续在代码中使用硬编码的SQL语句(而不是切换到LINQ2SQL、Entity Framework或其他ORM工具),那么 不 我们要做的是将where子句作为参数添加到方法中(如果这就是“参数化where子句”的意思)。这使得使用此方法的客户机依赖于您的数据访问技术(在本例中是SQL数据库)。 比较以下两个调用:
哪一个看起来更好? |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |