เมื่อฉันป้อนวัตถุลงในฐานข้อมูลด้วย Linq-to-SQL ฉันจะได้รับรหัสที่ฉันเพิ่งแทรกโดยไม่ต้องทำการเรียก db อื่นได้หรือไม่ ฉันคิดว่ามันค่อนข้างง่ายฉันไม่รู้
เมื่อฉันป้อนวัตถุลงในฐานข้อมูลด้วย Linq-to-SQL ฉันจะได้รับรหัสที่ฉันเพิ่งแทรกโดยไม่ต้องทำการเรียก db อื่นได้หรือไม่ ฉันคิดว่ามันค่อนข้างง่ายฉันไม่รู้
คำตอบ:
หลังจากที่คุณคอมมิตออบเจกต์ของคุณลงใน 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;
เมื่อแทรก 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/database/how-to-common-data-patterns-with-linq-to-sql/#4
ลองสิ่งนี้:
MyContext Context = new MyContext();
Context.YourEntity.Add(obj);
Context.SaveChanges();
int ID = obj._ID;