我应该使用int或long作为实体框架模型中的主键吗?

本文关键字:模型 框架 实体 int long 我应该 | 更新日期: 2023-09-27 18:13:41

我正在编写一个MVC5 Internet应用程序,我有一个关于模型id字段的问题。

我应该在模型中使用int或long类型的id吗?我说的是用于主键的字段?如果数据库有100,000条记录,int是否足够?c#中的int与SQL数据库中的int不同吗?

Thanks in advance

我应该使用int或long作为实体框架模型中的主键吗?

对于类型INT,从1开始,您将得到超过20亿个可能行的—这对于绝大多数情况应该是足够的。用BIGINT,你得到大约922千万亿(922加15个零- 922万亿个)-足够了??

如果您使用从1开始的INT IDENTITY,并且您每秒插入一行,在24小时内,您需要66.5 才能达到20亿的限制....

如果您使用从1开始的BIGINT IDENTITY (T-SQL中的BIGINT在.NET语言中定义为longInt64),并且您每秒插入 1000行,那么您需要令人难以置信的 2.92亿年才能达到922千万亿次限制....

阅读更多关于它(有所有的选项)在MSDN图书在线

都可以。这取决于一个表中有多少条记录。Int只允许每个表有2*10^9条记录。

如果你确定2*10^9是足够的,使用int作为键。

但:如果记录计数有很小的机会大于2*10^9,则使用long。如果您不知道将有多少条记录,请使用long.

c#和SQL对int都有相同的定义,这是一个从-2^312^31 - 1的整型数据类型(如果你愿意,可以是2,147,483,647)。

正如您所看到的,您的100,000条记录可以在int中容纳超过20,000次,因此,您将在当前场景中正常运行。

然而,long将在sql中转换为bigint(没有"long"本身),并且值上限为2^63 - 1