LINQ插入后我可以返回'id'字段吗?

时间:2008-09-22 09:10:02

标签: c# .net linq linq-to-sql

当我使用Linq-to SQL将对象输入到数据库中时,我可以获取刚刚插入的id而不进行另一个db调用吗?我假设这很容易,我只是不知道如何。

3 个答案:

答案 0 :(得分:260)

将对象提交到db后,对象会在其ID字段中收到一个值。

所以:

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;

答案 1 :(得分:15)

当插入生成的ID时,将保存到正在保存的对象的实例中(见下文):

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;
}

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

答案 2 :(得分:0)

尝试一下:

MyContext Context = new MyContext(); 
Context.YourEntity.Add(obj);
Context.SaveChanges();
int ID = obj._ID;