Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it good idea to use uint instead of int as the primary key in data model class?

Tags:

We know that the primary keys are usually positive integers.

Is it good idea to use uint instead of int as the primary key in data model class?

Example:

public class Customer {    public uint CustomerId {get;set;}    //others are omitted for the sake of simplicity. } 
like image 931
xport Avatar asked Feb 07 '11 04:02

xport


2 Answers

The corresponding SQL data type is a signed number, so I'd stick with the int to avoid any surprises.

like image 97
Jeromy Irvine Avatar answered Oct 14 '22 23:10

Jeromy Irvine


In case somebody else stumbles on this question - don't use uint for your keys. I've just tried that with Entity Framework 6.1.12 and code kept failing with cryptic "Entity doesn't have key" exception.

Only after I've changed uint property back to int it started working as expected.

So, yeah, it sucks to have 2+ billion range unused, but that's how things are. And if you have even a slight doubt that you may end up with billion plus records, go with long. Ironically, then you'll have 9,223,372,036,854,775,808 numbers unused ;).

like image 28
nikib3ro Avatar answered Oct 14 '22 22:10

nikib3ro