NEWID()实体框架中的SQL Server函数

本文关键字:SQL Server 函数 框架 实体 NEWID | 更新日期: 2023-09-27 18:19:24

我正在使用AngularJSASP开发一个web应用程序。. NET实体框架SQL Server数据库。

我想用EF用这个方法插入一些行:

public string addRow(int CaptionID, string enLang)
{
    string output = "";
    try
    {
        var Cap = new Table_Name();
        string 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;
}

此函数有效

但是我有一个关于NEWID()函数的问题,我已经搜索了很多,知道如何复制相同的,但我不知道,我已经看了这个线程,但没有。

实际上,我想将NEWID()分配给Cap.ID

p。S:我知道有可能通过将SELECT NEWID()分配给Cap.ID来使用SQLServer,但我正在寻找一种使用EF的方法。

NEWID()实体框架中的SQL Server函数

Just do: Cap.ID = Guid.NewGuid();

如果你想让EF为你做这项工作,你可以在你的Table_Name实体中使用数据注释:

public class Table_Name
{
  [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  public Guid ID {get;set;}
  //...
}

这样您就可以将ID列定义为Identity,当您添加新元素并保存更改时,数据库将为您生成ID