SQL 和 C# 搜索一条记录并期望一条记录或一组记录?



这可能看起来很主观,但我正在寻找那些喜欢设置或至少参与设置编码标准的人的答案。

在C#中,当通过非主键索引搜索单个记录时,您应该期待什么类型的结果?

如果您:

select * from tablename where fieldname=@fieldname

作为一种实践,您应该对逻辑进行编码以期望一个IEnumerable列表还是一条记录?

如果您真的只期望一条记录,那么SQL应该使用TOP 1吗?如下所示:

select Top 1 * from tablename where fieldname=@fieldname

我认为,与其考虑的期望,更好的方法是构造查询,以便获得想要的。如果你只对零或一个潜在的匹配感兴趣,那么TOP(1)肯定有效。尽管我可能会添加一些排序子句。

然而,如果你想要零或更多,那么第一种方法更好。

任何时候,基于非唯一值进行查询时,都有可能返回多个记录。当然,今天这个查询只得到一个。然而,在未来的某个时刻,一个不可预见的变化将发生,突然之间,您现在又返回了多行。

最新更新