PDA

View Full Version : سوال: استفاده از متود Last در Linq



ya ali
جمعه 18 بهمن 1392, 16:51 عصر
باسلام
من دربرنامه ام نیاز دارم بعد از افزودن یک رکود به جدول ID رکود وارد شده را بگیرم مانند دستور Scope()
ولی در لینک بلد نیستم ، برای همین یکی از راه های حل مشکل استفاده از متود Last() انتخاب کردمولی هرجوری ازاین متود استفادهمیکنم با خطای زیر مواجه مشوم

The query operator 'Last' is not supported.


نوحه استفاده :

var a = db.tblpics.Select(c => c.id).Last();


لطفا کمک کنید ممنون

مهران موسوی
جمعه 18 بهمن 1392, 17:05 عصر
دوست عزیز پس از SubmitChanges یا SaveChanges شیء اضافه شده به دیتابیس شما ، با ID افزوده شده به روز میشه . مثال زیر میتونه یک مثال بسیار ساده باشه ...


public int AddItem(Item i)
{
try
{
int id = 0;
using (DatabaseContext context = new DatabaseContext())
{
i.CreatedOn = DateTime.UtcNow;
context.Items.InsertOnSubmit(i);
context.SubmitChanges();
id = i.ID;
}
return id;
}
catch (Exception e)
{
LogException(e);
}
}

khokhan
جمعه 18 بهمن 1392, 17:12 عصر
من دربرنامه ام نیاز دارم بعد از افزودن یک رکود به جدول ID رکود وارد شده را بگیرم مانند دستور Scope()
ولی در لینک بلد نیستم ، برای همین یکی از راه های حل مشکل استفاده از متود Last() انتخاب کردمولی هرجوری ازاین متود استفادهمیکنم با خطای زیر مواجه مشوم

اگر رویداد کلیک باتن درج شما اینطوری باشه:

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();
}
برای دریافت آخرین آی دی درج شده نیازی به مراجعه به جدول و کوئری نیست می تونین ازآخرین آبجکت درج ، آی دی رو بگیرین اینطوری :


private int InsertProductCategory(ProductCategory productCategory)
{
ctx.ProductCategories.InsertOnSubmit(productCatego ry);
ctx.SubmitChanges();
return productCategory.ProductCategoryID;
}