PDA

View Full Version : برگرداندن IDENT_CURRENT + linq to sql



mrali.jalali
شنبه 09 مرداد 1395, 17:18 عصر
سلام . من میخام وقتی رکوردم ثبت میشه آی دی آخرین فیلد رو بهم برگردونه .با linq to sql نوشتم .



var result = db.ExecuteQuery<Tbl_Document> ("SELECT top 1 doc_id ,IDENT_CURRENT ('dbo.Tbl_Document') as k from Tbl_Document ");




حالا نمی دونم چطوری فیلد k رو بخونم ؟؟؟


فعلا از این روش زیر استفاده کردم . نمی دونم درسته یا نه ؟







var maxID = db.Tbl_Documents.Select(q => q.Doc_ID).Max();

mrprestige
شنبه 09 مرداد 1395, 19:17 عصر
سلام دوست من وقتت بخیر ، دوست عزیز بنظرم این روش اصولی نیست و امکان داره بعدن براتون مشکل ساز شه ، شما میتونی ستون Doc_ID رو بصورت نزولی مرتب کنید و سپس با استفاده از دستور ()FirstOrDefault اولین رکود ( که در واقع آخرین رکورد شما بحساب میاد) رو نمایش بدید .

Var MaxID=db.Tbl_Document.OrderByDescending(q=>q.Doc_ID).FirstOrDefault();

پیروز موفق باشید .

Mahmoud.Afrad
شنبه 09 مرداد 1395, 22:00 عصر
اگر منظورتون همان رکوردی هست که ثبت میکنید ، می تونید بلافاصله بعد از ثبت مقدار آیدی را بدست بیارید و در متغیری ذخیره کنید.
مثال

using (DataClasses1DataContext db = new DataClasses1DataContext())
{
tbl t = new tbl();
t.name = "......";
db.tbls.InsertOnSubmit(t);
db.SubmitChanges();

MessageBox.Show(t.Id.ToString());
}