Fonction SQL Server NEWID () dans Entity Framework

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.