ورود

View Full Version : سوال: چگونه اطلاعات کش شده را توسط ef را پاک کنیم



parsdarab
شنبه 05 فروردین 1396, 00:56 صبح
سلام دوستان
من با استفاده از dnt schedelr که یک برنامه زمانبندی هست هر 10 ثانیه یکبار به بانک اطلاعاتی سلکت میزنم.
فقط سلکت اولی اطلاعات رو از db میخونه برای 10 ثانیه بعد همون اطلاعات قبلی خونده میشه(وقتی مقداری رو در یکی از رکوردها تغییر میدم بعد break point میزام چک میکنم می بینم اطلاعات اپدیت نشده)

برای اینکه هر سری اطلاعاتی که خوانده میشه از کش استفاده نشه باید چیکار کنم؟

var models = _telegramRssService.GetActive().ToList(); //System.Diagnostics.Trace.WriteLine(l.Count);
var now = DateTime.Now;
string min = now.Minute.ToString();


//return now.Second % 50 == 0;
var listScheduled = models.Where(advertisTelegramRss => advertisTelegramRss.Scheduled == min).ToList();

anubis_ir
شنبه 05 فروردین 1396, 08:22 صبح
طول عمر _telegramRssService چي هست؟ احتمالا فقط يكبار وهله سازي شده.

parsdarab
شنبه 05 فروردین 1396, 14:45 عصر
در قسمت سازنده ها وهله سازی شده

public class SendRssTask : ScheduledTaskTemplate
{
private readonly IAdvertisServiceTelegramRss _telegramRssService;

//public SendRssTask(IAdvertisServiceTelegramRss telegramRssService)
//{
// _telegramRssService = telegramRssService;
//}

public SendRssTask()
{
_telegramRssService = SmObjectFactory.Container.GetInstance<IAdvertisServiceTelegramRss>();

}}

parsdarab
شنبه 05 فروردین 1396, 15:10 عصر
با گذاشتن این کد در قسمت tunدرست شد.

public override void Run()
{
if (this.IsShuttingDown || this.Pause)
return;

_telegramRssService = SmObjectFactory.Container.GetInstance<IAdvertisServiceTelegramRss>();}

parsdarab
سه شنبه 08 فروردین 1396, 23:48 عصر
سلام
برای ذخیره سازی در بانک اطلاعاتی به مشکل خوردم
می خوام یک رکورد را در اجرای زمانبندی درج کنم باید چیکار کنم؟

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



public class SendRssTask : ScheduledTaskTemplate
{
private IAdvertisServiceTelegramRss _telegramRssService;
private IAdvertisServiceTelegramRssLink _telegramRssLinkService;
private readonly IUnitOfWork _unitOfWork;

public SendRssTask()
{
_unitOfWork = SmObjectFactory.Container.GetInstance<IUnitOfWork>();

//_telegramRssService = SmObjectFactory.Container.GetInstance<IAdvertisServiceTelegramRss>();
}
}


اینم کد قسمت run

var list1 = _telegramRssLinkService.GetAll(100);
List<string> result = url.Except(list1).ToList();

_telegramRssLinkService.AddOrUpdate(result);
_unitOfWork.SaveAllChanges();

قسمت savechange کار نمیکنه؟

کسی تاحالا به این مشکل برخورد کرده؟

parsdarab
چهارشنبه 09 فروردین 1396, 09:14 صبح
دیشب خواب دیدم که این قسمت یادم رفته بزارم


_advertisTelegramRssLink = _unitOfWork.Set<AdvertisTelegramRssLink>();

:قلب: