This sounds like a custom configuration in your application as the default configuration for Entity Framework would expect a an integer Id.
As for Why? This would have been a design decision by the developer at the time.
This will also depend on how long ago that was implemented and if the database was originally created before Entity Framework was implemented or indeed .Net was implemented.
I have seen implementations that started as classic ASP web apps, where GUIDs or string Id values were used as Ids, so users could not guess the URLs to get data. This would be seen as very weak security these days, but was used in the past.
It would be possible to add an integer Identity field and then set this in configuration as the Id that Entity Framework would use:
// Set Id Property as Key Property for all entities
modelBuilder
.Properties()
.Where(p => p.Name == "Id")
.Configure(p => p.IsKey());