所以我最近在代码中遇到了这个解决方案,并且想知道它是否被认为是从强类型数据集/表中检索单行的“可接受”方式。
基本上我们拥有的是这样的:
Dim fooAdapter As New FooDataSetTableAdapters.FooTableAdapter()
Dim fooRow As FooDataSet.FooRow = CType(fooAdapter.GetData().Select("SomeFooField=50")(0), FooDataSet.FooRow)
with fooRow
..
..
end with
虽然上面的代码工作我的主要问题是调用fooAdapter.GetData()实际上会在应用Select()过滤器之前获取表中的所有数据,这可能会随着时间的推移减慢速度......是否有更清洁的东西这样做的方法还是这种做事好的方式?
编辑: 过滤条件不是主键字段,因此调用表的FindByFooID方法将无效...
答案 0 :(得分:3)
使用数据集编辑器工具创建一个查询GetUniqueFoo
,其中包含将根据SomeFooField
进行过滤的SQL。您可以使用fooAdapter.GetUniqueFoo(SomeFooValue)
运行它。