我正在使用 AngularJS , ASP.NET ,实体框架和 SQL Server 开发Web应用程序数据库中。
我想使用此方法使用 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()
函数有疑问,我已经搜索了很多,知道如何重现它,但我不知道,我已经看过thread但没什么。
事实上,我想将NEWID()
分配给Cap.ID
。
PS :我知道可以通过将SELECT NEWID()
分配给Cap.ID
来使用SQLServer来实现它,但我正在寻找一种方法来使用 EF
答案 0 :(得分:4)
只需:Cap.ID = Guid.NewGuid();
答案 1 :(得分:2)
如果您希望EF为您完成工作,您可以使用Data Annotations在Table_Name
实体中执行此操作:
public class Table_Name
{
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ID {get;set;}
//...
}
这样您就可以将ID
列定义为Identity,当您添加新元素并保存更改时,数据库将为您生成ID
。