NEWID()实体框架中的SQL Server函数
本文关键字:SQL Server 函数 框架 实体 NEWID | 更新日期: 2023-09-27 18:19:24
我正在使用AngularJS, ASP开发一个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的方法。
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
。