Witam,
Ostatnio znalazlem bardzo dobre rozwiazanie by móc odswierzac automatycznie dane z Entity Framework ( <a href="http://www.codeproject.com/Articles/233770/AutoRefresh-Entity-Framework-data-using-SQL-Server?msg=5099295#xx5099295xx>AutoRefresh Entity Framework Data Using SQL Server Service Broker</a> ). Chciałem zaadaptowac to rozwiazanie w mojej aplikacji. Jezeli chodzi o tabele + where, dziala swietnie. Model stworzylem za pomoca ADO.net Data Entity Model.
this.Chat == new AutoRefreshWrapper<tbl_Main_Timer>((from a in maintimer.tbl_Main_Timerwhere a.LogDate == System.DateTime.Today), maintimer, RefreshMode.StoreWins)
Chat jest spięty z DataGird na View. i tutaj wszystko działa.
klasa AutoRefreshWrapper wygląda tak:
public class AutoRefreshWrapper<T> : IEnumerable<T>, INotifyRefresh where T : class
{
private IEnumerable<T> entitySet;
private RefreshMode _refreshMode;
public AutoRefreshWrapper(DbQuery<T> dbq, DbContext dbContext, RefreshMode refreshMode)
{
this.entitySet = dbq;
((System.Data.Entity.Infrastructure.IObjectContextAdapter)dbContext).ObjectContext.AutoRefresh(refreshMode, this);
}
Mam jednak problem z podpieciem Procedury składowej tutaj (z kilkoma parametrami). Próbowałem na różne sposoby, ale wyrzuca mi przeróżne Exceptions:
Value of type 'System.Data.Entity.Core.Objects.ObjectResult(Of HP_Timer_Tool_V3.EmployeeMetricR_Result)' cannot be converted to 'System.Data.Entity.Core.Objects.ObjectQuery(Of HP_Timer_Tool_V3.EmployeeMetricR_Result)'.
Albo przy GetEnumerator() - object reference not set to an instance of an object.
Czy to SP z parametrami można jakoś wrzucić pod DBQuery? czy wykorzystać tutaj coś innego?
new AutoRefreshWrapper<SP>((SP z parametrami), maintimer, RefreshMode.StoreWins)
Próbowałem nawet z objectContext.ExecuteStoreQuery i wywoływać tą procedurę, jednak bez powodzenia....
Dziękuję za wszelkie sugestie,
Pozdrawiam