我想要显示一些数据(大约1000行)。我希望用户能够动态地过滤和排序数据。此外,我必须能够保存和加载数据。我是相对较新的数据库,需要你帮助决定哪种方法最好/最合理:
第一个变种: 这是我目前的做法。我正在使用绑定到RowItems的ObservableCollection的ListView / GridView。我现在可以使用View进行排序和过滤。保存和加载是通过序列化完成的。
第二个变种: 使用数据库存储数据。然后将数据加载到与上面相同的业务对象中。
第3个变种: 将ListView直接绑定到数据库。我发现这在某种程度上是可能的,而且我对细节仍然有些模糊。特别是在排序和过滤方面(可以通过数据库查询吗?)
第四个变种: 将数据存储在数据库中使用ObservableCollection的bussines对象进行绑定。但是通过SQL查询过滤(和排序?)。
这些是我满足我的要求的想法。我想知道哪一个是最好的/最简单/最好的/等等。或者如果你建议采用其他方法。enter code here
答案 0 :(得分:1)
在可能的情况下,永远不要在后端数据和显示之间进行紧密集成。以后更容易更改。您可以使用NHibernate或其他ORM来更轻松地表示和读取/写入数据库中的数据。这样你就可以在它们之间使用层/层(也就是n层)
你只需要调用DB来读取数据,它就是1000行也不错,你可以一次读取它们并将它保存在内存中。任何过滤/排序/分组,您可以在内存DomainModel / Buisness对象上执行它而不触及库。
我会使用变体1)和2)的混合物。
我会使用业务对象来表示来自数据库的数据(NHibernate非常方便)。然后我会在客户端上执行所有数据过滤/排序,而不是每次都要求DB。对数据库的任何写入都必须通过某种域模型层或ORM,以便它们不会紧密链接。这允许我在不影响GUI前端
的情况下使用数据库