Sto creando un nuovo sito e lo baserò su ASP.NET MVC 5 e amp; Contributo Dapper. Voglio andare all in con tutte queste tecnologie - e ottenere sempre il risparmio / convenzione sulla configurazione / i vantaggi del codice tergente disponibili.
Sto progettando il database in SQL Server 2014. Storicamente ho sempre chiamato le chiavi primarie TableId
piuttosto che "Id".
CREATE TABLE User (
UserId int IDENTITY(1,1) NOT NULL,
Username VARCHAR(50),
FirstName VARCHAR(50),
LastName VARCHAR(50)
)
Piuttosto che ...
CREATE TABLE User (
Id int IDENTITY(1,1) NOT NULL,
Username VARCHAR(50),
FirstName VARCHAR(50),
LastName VARCHAR(50)
)
Questo evita ambiguità in alcuni SQL - ed evita di unire campi chiave primari a chiavi esterne con un nome diverso. Buono per chiarezza.
Tuttavia - e penso che Ruby on Rails Active Record abbia iniziato questo - ORM come Dapper Contrib richiedono meno configurazione se l'Id di una tabella / modello è chiamato "Id". Per me questa è un'indicazione delle migliori pratiche e deve essere incoraggiata.
Questo è il contributo di Dapper che ha un'opinione e raccomanda una buona pratica.
Dopo aver detto che pochissimi siti o codici di esempio ho trovato (oltre la documentazione dapper) - usando Dapper o meno - usa "Id" - la maggior parte usa "TableID".
Ci sono vantaggi oltre a non dover aggiungere l'attributo [Key] alla proprietà "TableID" di un modello per farlo mappare - e qual è la "best practice" quando si effettua lo sviluppo di campi verdi?
Sì, questa domanda è stata posta molte volte - ma non con una relazione diretta con gli ORM - e non specificamente su ASP.NET MVC 5 & Contributo Dapper. Questi sono nuovi (ish) fattori.
Oppure sto solo fustigando un cavallo morto qui - è una preferenza puramente personale e non così importante - anche quando gli ORM sono presi in considerazione?