我有两种类型的一些计算列:
- 基于当前表中列的计算列(即价格 * 税)
- 基于其他列的计算列(即价格 * fn_GetTax(OrderId))
你会说最好只在客户端使用 CLR 中的这些列,然后从服务器保存计算和传输性能吗?它在上面列出的类型(和其他类型)中是否有所不同?
我有两种类型的一些计算列:
你会说最好只在客户端使用 CLR 中的这些列,然后从服务器保存计算和传输性能吗?它在上面列出的类型(和其他类型)中是否有所不同?
我会尝试将计算列作为 SQL 表的一部分——如果这样做所需的努力不是很过分的话。
如果您有相当简单的计算、查找或类似的东西 - 将它们直接放在 SQL 表中。这样,即使您需要使用 T-SQL 或其他访问 SQL Server 数据库的工具查询表,它们也可用,并且它们很可能快得多(尤其是如果您可以使它们持久化) .
如果您有更详细的要求,如果您需要大量的字符串、数学或日期操作等,您最好将这些计算放入 .NET 语言中。您可以将其作为 CLR 程序集存储在 SQL Server 中,并且仍然直接在 SQL Server 中执行列(如果可能被其他团队或项目重用),或者您可以将它们放入您的 EF 模型中(如果可能的话)唯一对那些计算列感兴趣的人。
希望对您的问题有所启发!