Can I return the 'id' field after a LINQ insert?

后端 未结 3 1608
独厮守ぢ
独厮守ぢ 2020-12-12 11:20

When I enter an object into the DB with Linq-to-SQL can I get the id that I just inserted without making another db call? I am assuming this is pretty easy, I just don\'t k

相关标签:
3条回答
  • 2020-12-12 11:32

    When inserting the generated ID is saved into the instance of the object being saved (see below):

    protected void btnInsertProductCategory_Click(object sender, EventArgs e)
    {
      ProductCategory productCategory = new ProductCategory();
      productCategory.Name = “Sample Category”;
      productCategory.ModifiedDate = DateTime.Now;
      productCategory.rowguid = Guid.NewGuid();
      int id = InsertProductCategory(productCategory);
      lblResult.Text = id.ToString();
    }
    
    //Insert a new product category and return the generated ID (identity value)
    private int InsertProductCategory(ProductCategory productCategory)
    {
      ctx.ProductCategories.InsertOnSubmit(productCategory);
      ctx.SubmitChanges();
      return productCategory.ProductCategoryID;
    }
    

    reference: http://blog.jemm.net/articles/databases/how-to-common-data-patterns-with-linq-to-sql/#4

    0 讨论(0)
  • 2020-12-12 11:35

    After you commit your object into the db the object receives a value in its ID field.

    So:

    myObject.Field1 = "value";
    
    // Db is the datacontext
    db.MyObjects.InsertOnSubmit(myObject);
    db.SubmitChanges();
    
    // You can retrieve the id from the object
    int id = myObject.ID;
    
    0 讨论(0)
  • 2020-12-12 11:45

    Try this:

    MyContext Context = new MyContext(); 
    Context.YourEntity.Add(obj);
    Context.SaveChanges();
    int ID = obj._ID;
    
    0 讨论(0)
提交回复
热议问题