Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 实体框架5:已更新上下文,但未更新视图_C# 4.0_View_Entity Framework 5 - Fatal编程技术网

C# 4.0 实体框架5:已更新上下文,但未更新视图

C# 4.0 实体框架5:已更新上下文,但未更新视图,c#-4.0,view,entity-framework-5,C# 4.0,View,Entity Framework 5,我在软件中使用工作单元和存储库模式。 表单上有一个dataGridView,它从下一个路径获取数据: acceptedBonusesGrid.DataSource = _unitOfWork.DocumentRepository.GetDocumentsInfo(); GetDocumentsInfo位于DocumentRepository中。GetDocumentsInfoes-是具有连接的复杂视图: public IQueryable<GetDocumentsInfo> Get

我在软件中使用工作单元和存储库模式。 表单上有一个dataGridView,它从下一个路径获取数据:

acceptedBonusesGrid.DataSource = _unitOfWork.DocumentRepository.GetDocumentsInfo();
GetDocumentsInfo位于DocumentRepository中。GetDocumentsInfoes-是具有连接的复杂视图:

public IQueryable<GetDocumentsInfo> GetDocumentsInfo()
{
     return _context.GetDocumentsInfoes;
}
表单打开,指向工作单元的链接正在使用中:

public CorrectionAcceptedForm(UnitOfWork unitOfWork, int docNum)
{
    InitializeComponent();
    _unitOfWork = unitOfWork;

    _documentData = _unitOfWork.DocumentRepository.GetById(docNum);

    AssignValues();
}
用户在记录中进行更改并保存更改:

private void SaveBill(int billId)
{
    if (ValidateChildren())
    {
        SaveSupplierAddress();
        Bill billData = _documentData.Bills.FirstOrDefault(bill => bill.BillId == billId);
        if (billData != null)
        {
            billData.Description = descriptionTextbox.Text;
            billData.Price = Convert.ToDecimal(priceTextbox.Text.Replace('.', ','));
            _unitOfWork.Save();
        }
    }
}
当此更正表单关闭时,主表单上的datagrid将重新加载:

acceptedBonusesGrid.DataSource = null;
acceptedBonusesGrid.Columns.Clear();
acceptedBonusesGrid.DataSource = _unitOfWork.DocumentRepository.GetDocumentsInfo();
但是在重新加载之后-datagrid中的所有行都是旧的,这是在进行更改之前。
什么问题?

三个月后,我发现了问题。 GetDocumentsInfo()必须如下所示:

    public IQueryable<GetDocumentsInfo> GetDocumentsInfo()
    {
        _context.GetDocumentsInfoes.MergeOption = MergeOption.OverwriteChanges;
        return _context.GetDocumentsInfoes;
    }
public IQueryable GetDocumentsInfo()
{
_context.GetDocumentsInfoes.MergeOption=MergeOption.OverwriteChanges;
return\u context.GetDocumentsInfoes;
}
现在,当我在子窗体中进行更改时,我的DataGrid将更新

    public IQueryable<GetDocumentsInfo> GetDocumentsInfo()
    {
        _context.GetDocumentsInfoes.MergeOption = MergeOption.OverwriteChanges;
        return _context.GetDocumentsInfoes;
    }