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:

Kopiuj
 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