在這個例子中:我不明白EF5 dbContext.Entry(entity).Reload()方法應該如何工作?
using System;
using System.Collections.Generic;
using dbModel;
using System.Linq;
using System.Data.Entity.Infrastructure;
namespace WinApp
{
public partial class Form1 : Form
{
private dbEntities dbc;
public IQueryable<ARTIKLI> art;
public IQueryable<ART_GRUPE> grp;
public Form1()
{
InitializeComponent();
dbc = new dbEntities();
}
private void GetData()
{
art = from a in dbc.ARTIKLIs
select a;
grp = from g in dbc.ART_GRUPE
select g;
artikliBindingSource.DataSource = art.ToList();
artGrupeBindingSource.DataSource = grp.ToList();
}
private void Form1_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
{
dbc.SaveChanges();
}
private void loadData_Click(object sender, EventArgs e)
{
this.GetData();
}
private void refresh_Click(object sender, EventArgs e)
{
dbc.Entry(grp).Reload();
artGrupeBindingSource.ResetBindings(false);
}
}
}
一切建立確定。但是,當我運行,並單擊刷新按鈕,我得到錯誤:
的實體類型DbQuery`1是不是該機型爲當前上下文
我只是想刷新從存儲數據的一部分grp
使用DbContext
的實體實例。我知道我可以轉換成DbContext
和ObjectContext
然後用Refresh
的方法,但 它應該可以做同樣的DbContext.Entry(entity).Reload();
有人可以解釋在上面的代碼我的錯誤?
'grp'不是一個實體,它是一個查詢 –
我知道...如何刷新使用dbContext查詢? – EmirZ
我會再次調用'GetData' –