Varlık Çerçevesi Zaman Aşımı
Zaman aşımı 30 saniye sürer bir işlev ithalat kullanırken Varlık Çerçevesi (EF) kullanarak alıyorum. Aşağıdaki denedim ve bu sorunu çözmek için mümkün olmamıştır:
Varsayılan Komut=300000 App bağlantı dizesi için zaman Aşımı eklendi.Burada önerilen EDMX dosyası olan proje yapılandırma dosyası: Entity Framework with MySQL - Timeout Expired while Generating Model
Bu benim bağlantı dizesi gibi görünür:
<add
name="MyEntityConnectionString"
connectionString="metadata=res://*/MyEntities.csdl|res://*/MyEntities.ssdl|res://*/MyEntities.msl;provider=System.Data.SqlClient;provider connection string="Data Source=trekdevbox;Initial Catalog=StarTrekDatabase;Persist Security Info=True;User ID=JamesTKirk;Password=IsFriendsWithSpock;MultipleActiveResultSets=True;Default Command Timeout=300000;""
providerName="System.Data.EntityClient" />
Benim depoda CommandTimeout ayarı doğrudan gibi çalıştım:
private TrekEntities context = new TrekEntities();
public IEnumerable<TrekMatches> GetKirksFriends()
{
this.context.CommandTimeout = 180;
return this.context.GetKirksFriends();
}
Ben başka bir zamanlama gelen EF çıkmak için ne yapabilirim? Bu sadece çok büyük veri setleri için olur. Her şey küçük veri setleri ile gayet iyi çalışıyor.
Burada alıyorum hatalardan biri:
Sistem.Veri.EntityCommandExecutionException: Bir hata komut tanımı yürütülürken hata oluştu. Ayrıntılar için iç özel duruma bakın. --->Sistem.Veri.SqlClient.SqlException: zaman Aşımı süresi doldu. Zaman aşımı süresi işlem tamamlanmadan önce geçen veya sunucu yanıt vermiyor.
TAMAM çalışma var bu ne aptalca bir şey. Her iki bağlantıyı "Varsayılan Komut zaman Aşımı=300000" ve CommandTimeout 180; bağlantı dizesi Varsayılan Komut zaman Aşımı kaldırıldı, işe yaradı ayarlayın. dize vardı Cevap el ile şu şekilde: bağlam nesnesi üzerinde veri CommandTimeout ayarlamaktır
bu.bağlam.CommandTimeout = 180; Görünüşe göre bağlantı dizesinde zaman aşımı ayarları üzerinde hiçbir etkisi yoktur.
CEVAP
EF, bağlantı dizesi içinde belirtme varsayılan komut zaman aşımı ile bilinen bir hata var.
http://bugs.mysql.com/bug.php?id=56806
Bağlantı dizesi değeri kaldırın ve veri bağlamında nesnenin kendisi üzerinde ayarlayın. Bu bağlantıyı çakışan değeri dize çıkarın.
Varlık Çerçevesi 6:
this.context.Database.CommandTimeout = 180;
Varlık Çerçevesi 5:
((IObjectContextAdapter)this.context).ObjectContext.CommandTimeout = 180;
Çerçeve 4 ve altında varlık:
this.context.CommandTimeout = 180;
Varlık Çerçevesi Zaman Aşımı...
Varlık Çerçevesi nesnelerin 1000'...
Nasıl "ısınma" Varlık Çerçev...
alt işlemi zaman aşımı ile...
Android Voleybolu Zaman Aşımı...