Je développe une application web en utilisant AngularJS , ASP.NET , Entity Framework et une database SQL Server .
Je veux insert des lignes en utilisant EF avec cette méthode:
public ssortingng addRow(int CaptionID, ssortingng enLang) { ssortingng output = ""; try { var Cap = new Table_Name(); ssortingng userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; Cap.CodeId = CaptionID; Cap.Created = DateTime.Now; Cap.CreatedBy = userName; Cap.ID = ""; Cap.CodeLanguage = "en"; Cap.CodeCountry = "GB"; Cap.Caption = enLang; _db.Entry(Cap).State = EntityState.Added; _db.SaveChanges(); output = "Created"; } catch (Exception ex) { output = ex.InnerException.Message; } return output; }
Cette fonction fonctionne.
Mais j'ai une question sur la fonction NEWID()
, j'ai beaucoup cherché pour savoir comment reproduire la même chose mais je ne savais pas, j'ai regardé ce sujet mais rien.
En fait, je veux assigner NEWID()
à Cap.ID
PS : Je sais qu'il est possible de le faire en utilisant SQLServer en assignant un SELECT NEWID()
à Cap.ID
, mais je cherche un moyen de le faire en utilisant EF .
Cap.ID = Guid.NewGuid();
simplement: Cap.ID = Guid.NewGuid();
Si vous voulez que EF fasse le travail pour vous, vous pouvez le faire dans votre entité Table_Name
utilisant les annotations de données :
public class Table_Name { [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid ID {get;set;} //... }
De cette façon, vous pouvez définir votre colonne ID
tant qu'identité , et lorsque vous ajoutez un nouvel élément et enregistrez des modifications, la database générera l' ID
pour vous.