我的项目要求我创建一个包含表列表的数据库对象(自定义类),每个表包含一列列。 columns和tables对象具有数据库中不可用的特定属性。例如标签,最大值,最小值等。
所有这些自定义属性都存储在数据库表中,用户可以修改这些表。这些属性将用于各种Web表单。
我的问题:继续连接到数据库以找出每个表单的这些扩展属性是明智的,或者创建一个对象(如上所述)并将所有表,列存储为列表并将该BIG对象存储为应用变量。
我还想把对象放在缓存中,并在用户对扩展属性进行更改时使对象过期。
有人可以告诉我上述3种方法中的最佳方法或任何其他确保最佳性能的方法。
由于
编辑:这必须是适用于任何数据库的通用解决方案。因此,可能存在大量表(50-120),每个表具有10-30列
Edit2 :我还在考虑动态创建类(比如Entity框架)并使用反射加载它们。
答案 0 :(得分:0)
由于您只是缓存元数据而没有数据,因此存储的数量相对较小。
我有两种选择:
Application
对象中,该对象可供所有会话使用,但不会过期(但会在应用程序池重置之前一直存在)Cache
条目中,允许您设置将来的过期或数据库相关性,以便您可以刷新数据。由于您说用户可以更改数据,因此具有数据库依赖关系的Cache
看起来是正确的选择,尽管只能直接使用SqlCacheDependency
类支持(因此仅适用于SQL Server) )。
更通用的方法是缓存过期并在到期时导致数据库轮询。