我们使用具有版本(NHibernate 所需的日期时间)和 guid(作为键)等属性的基本实体。
它还有一个具有两个功能的 Id (int) 字段。首先与遗留应用程序 key 相关(如果有的话)。其次作为速记代码:例如,有时会基于这些创建文件,使用我们的 guid 键,这些文件看起来又丑又长。我的问题不是关于基本实体的优缺点,而是关于将此 Id 向上输入为 Int64?
它不会影响它在我们的 MS SQL Server 数据库中的存储方式。它会在我们的缓存和内存中产生更多成本吗?真的有那么担心吗?
我有兴趣了解除性能之外的其他缺点。还要考虑到这些值也可能会通过 Web 服务及时暴露给第三方。
另一种方法是处理出现的较大整数的异常,并在派生实体中专门实现它们。缺点是这需要在代码中完成,当我们在生产更大的整数时发现一些情况时我们会怎么做?当然会有输入验证来阻止实际错误,但它可能会限制扩展数据。
最佳答案
如果您的应用在 64 位 CPU 上运行,那么可能根本没有太大区别。
在 32 位 CPU 上,64 位整数将占用更多处理器来执行计算。
还有明显的内存占用。
关于c# - 普遍使用 Int64 而不是 int 的缺点 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/242930/