我会做数据库的权利,如果这些领域索引我会怀疑有数据库过滤器,它将比事后过滤c-sharp要快得多。
当然,您可以随时缓存过滤的数据库结果,以防止多个不必要的数据库调用。
编辑:作为存储在数据库中的信息,假设你有这个字段设置:
CREATE TABLE Tshirts
(
id int not null identity(1,1),
name nvarchar(255) not null,
tshirtsizeid int not null,
primary key(id)
)
CREATE TABLE TshirtSizes
(
id int not null, -- not auto-increment
name nvarchar(255)
)
INSERT INTO TshirtSizes(id, name) VALUES(1, 'Small')
INSERT INTO TshirtSizes(id, name) VALUES(2, 'Medium')
INSERT INTO TshirtSizes(id, name) VALUES(3, 'Large')
ALTER TABLE Tshirts ADD FOREIGN KEY(tshirtsizeid) REFERENCES tshirtsize(id)
然后在C#
public enum TShirtSizes
{
Small = 1,
Medium = 2,
Large = 3
}
在这个例子中,该表TshirtSizes
仅用于让读者知道神奇的数字1,2和3是什么意思。如果你不关心数据库的可读性,你可以忽略这些表,并且只需要一个索引列。
wpf似乎是一个误导标签。 :) – Ani
为什么不直接在数据库中查询用户想要的记录?我不认为像这样的相对较小的数字,你会遇到任何问题,你可以将它全部存储在内存中,但通常最简单的方法就是在需要时询问你想要的内容,然后离开缓存到一些中间层。 –
“我应该有一个包含每个枚举的网格的选项卡,还是应该有一个共同的枚举并始终过滤?或者?你在问如何在技术上实现查询,或者如何设计UI?如果是后者,这可能不适合你的问题。 –