[英]Entity Framework LINQ Insert
我正在嘗試使用LINQ在數據庫中插入一個對象。 我的主鍵是自動遞增。 我是否需要在代碼中增加id或Entity Framework可以做到?
我有dbContext:
TravelAgencyEntities db = new TravelAgencyEntities();
我正在嘗試插入User對象:
User newUser = new User();
newUser.FirstName = firstName.Text.ToString();
newUser.LastName = lastName.Text.ToString();
newUser.Email = email.Text.ToString();
newUser.Password = password.Text.ToString();
db.Users.Add(newUser);
db.SaveChanges();
它返回一個異常:
{"An error occurred while updating the entries. See the inner exception for details."}
我認為該錯誤是因為我沒有在我的對象中設置id,但是它應該是自動遞增的。 有人知道這個問題嗎?
內部錯誤:
Cannot insert explicit value for identity column in table 'User' when IDENTITY_INSERT is set to OFF
如果您首先使用代碼,則可能已在DbContext OnModelCreating中設置了以下代碼。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<User>()
.Property(a => a.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
}
或設置為以下屬性
public class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
.....
}
您必須將無更改為身份。 身份選項是密鑰的默認選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.