Asp.net 5/core'de bir öğeyi db'den async kullanarak bir gecikme ile silmek istiyorum. Sınıfta benim Datacontext (db) enjekte etmek için DI kullanıyorum. verilen süre yöntemi planlandığı gibi çalıştırılır ancak istisna almak sonraatılan bir nesneye erişemiyor Datacontext asp.net 5
public async void DeleteItemAfterTimeAsync(int itemId, TimeSpan timeSpan)
{
// give user time to fill out data
await Task.Delay(timeSpan);
var item = db.Items.FirstOrDefault(p => p.Id == itemId);
if (item!= null && item.Status == someStatus)
{
db.Items.Remove(item);
db.SaveChanges();
}
}
:
Ben aşağıdaki yöntemi oluşturulan hizmet nedeniyle konumlandırılmış olması nedeniyle muhtemelen 'bir nesneye erişilemiyor olamaz' gecikme. Metodda yeni bir veri örneğini çözmeli miyim yoksa bunu nasıl düzeltmeliyim? Herhangi bir fikrin var mı? Şimdiden yardımcı olduğunuz için teşekkürler.GÜNCELLEME:
yöntemin çağrılması:
await DeleteItemAfterTimeAsync(item.Id, new TimeSpan(0, 1, 0));
Güncelleme yöntemi:
public async Task DeleteItemAfterTimeAsync(int itemId, TimeSpan timeSpan)
{
// give user time to fill out data
await Task.Delay(timeSpan);
var item = db.Items.FirstOrDefault(p => p.Id == itemId);
if (item != null && item.Status == someStatus)
{
db.Items.Remove(item);
db.SaveChanges();
}
}
İstisna db.Items.Remove (item) oluşur;
Datacontext nasıl kaydedilir? Geçici olarak mı? –
"async void" yerine "async Task" kullanmayı denediniz mi? – Domysee
startup.cs: services.AddEntityFramework() .AddSqlServer(). AddDbContext (options => options.UseSqlServer (Yapılandırma ["Veri: DefaultConnection: ConnectionString"])); –