我在Access中使用我的数据库,我希望按ID进行自动增量。
我应该使用哪一个?
Id(x => x.Id).GeneratedBy.Increment().Column("COLUMN_NAME");
或
Id(x => x.Id).GeneratedBy.Identity().Column("COLUMN_NAME");
答案 0 :(得分:2)
来自Hibernate Docs(Nhibernate是Java项目的移植)
<强>增量强>
生成long,short或int类型的标识符,这些标识符仅是唯一的 当没有其他进程将数据插入同一个表时。不要 在集群中使用。
<强>身份强>
支持DB2,MySQL,MS SQL Server,Sybase和中的标识列 HypersonicSQL。返回的标识符的类型为long,short或int。
<强>序列强>
使用DB2,PostgreSQL,Oracle,SAP DB,McKoi或a中的序列 Interbase中的生成器。返回的标识符类型为long,short 或int
<强>天然强>
根据&gt;底层数据库的功能选择标识,序列或hilo。
所以 增量 应该用于小场景,增量是在内存中计算的。
Identity \ Sequence \ Native 使用数据库的本机功能来计算增量。
由于您使用Access可能是第一种情况,但我建议您迁移到MS SQL Server Express以获得更好的性能,安全性,可用性和扩展性。它是免费的,迁移应该是无痛的。