PDA

View Full Version : سوال: آپدیت نشدن دیتا با استفاده از LINQ و ENTITY در ویندوز فرم



mossaferin
دوشنبه 30 اردیبهشت 1392, 11:44 صبح
سلام


من با استفاده از linq و entity مقادیر رو از جدول میگیرم

var result = (from p in Context.Message where p.Number.Trim() == number.Trim() select p).FirstOrDefault();


حالا مشکل اینجاست که اگر از این کد توی web application استفاده کنیم هیچ مشکلی نداره و هر بار که اجرا میشه اطلاعات جدید رو از جدول میخونه و نمایش میده
ولی وقتی از همین کد توی یه win from application استفاده کنیم ، فقط بار اولی که اجرا میشه سراغ جدول میره و اطلاعاتش رو میخونه و وقتی که اطلاعات جدول رو تغییر میدم ، باز هم همون مقدار اولی که خونده بود رو نمایش میده ، انگار که یه جایی کش کرده باشه و دیگه سراغ دیتابیس نره

روی دو تا سیستم هم تستش کردم ولی همینجوریه

ممنون

mo.esmp
سه شنبه 31 اردیبهشت 1392, 00:37 صبح
var result = (from p in Context.Message.AsNoTracking() where p.Number.Trim() == number.Trim() select p).FirstOrDefault();

mossaferin
دوشنبه 06 خرداد 1392, 12:07 عصر
ممنون
نمیدونم چرا توی سیستم من این پیغام و میده ، شاید به نسخه EF مربوط بشه ؟نه؟



Error 1 'System.Data.Objects.ObjectSet<huffman.Message>' does not contain a definition for 'AsNoTracking' and no extension method 'AsNoTracking' accepting a first argument of type 'System.Data.Objects.ObjectSet<huffman.Message>' could be found (are you missing a using directive or an assembly reference?) O:\Users\Mostafa\Documents\Visual Studio 2010\Projects\huffman\huffman\Main.cs 112 59 huffman

mo.esmp
دوشنبه 06 خرداد 1392, 12:57 عصر
http://stackoverflow.com/questions/12726878/global-setting-for-asnotracking

mossaferin
سه شنبه 21 خرداد 1392, 21:51 عصر
با سلام و تشکر

سرانجام اینطوری حل شد


var result = (from p in Context.Message where p.Number.Trim() == number.Trim() select p).FirstOrDefault();
Context.Refresh(RefreshMode.StoreWins, result);


و یا البته اینطوری

Context.Message.MergeOption = MergeOption.NoTracking;
var result = (from p in Context.Message where p.Number.Trim() == number.Trim() select p).FirstOrDefault();