簡體   English   中英

實體框架LINQ插入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM