小编Mar*_*tin的帖子

实体框架刷新数据

我有一个datagrid,它有一个通过BindingSource绑定到它的集合:

            bsProducts.DataSource = cc.Products.Local.ToBindingList();
Run Code Online (Sandbox Code Playgroud)

网格中的一个实体正在以不同的形式进行编辑(并保存),我想在此表单上刷新网格,现在我尝试重新加载实体,重新加载整个本地上下文但由于某种原因它不是阅读相关的子实体.现在,当我关闭整个表格并再次打开它时,所有正在阅读.

要刷新实体,我使用以下代码:

        await cc.Entry<Product>(product).ReloadAsync();
Run Code Online (Sandbox Code Playgroud)

但是,这不会加载任何绑定到产品实体的相关实体.之后我重新尝试更新BindingSource,但没有运气.

c# entity-framework

7
推荐指数
1
解决办法
2784
查看次数

EntityFramework更新在SaveChanges / ASP.NET MVC /回发中随机失败

我正在从MVC中的回发进行实体更新:

ControlChartPeriod period = _controlChartPeriodService.Get(request.PeriodId);

if (period != null)
{
    SerializableStringDictionary dict = new SerializableStringDictionary();

    dict.Add("lambda", request.Lambda.ToString());
    dict.Add("h", request.h.ToString());
    dict.Add("k", request.k.ToString());

    period.Parameters = dict.ToXmlString();

    // ToDo : fails on save every now and then when one of the values changes; fails on Foreign Key being null
    try
    {
        _controlChartPeriodService.Update(period, request.PeriodId);
        return Ok(request);
    }
Run Code Online (Sandbox Code Playgroud)

更新方法如下所示:

public TObject Update(TObject updated, TKey key)
{
    if (updated == null)
        return null;

    TObject existing = _context.Set<TObject>().Find(key);
    if (existing != null)
    {
        _context.Entry(existing).CurrentValues.SetValues(updated);
        _context.SaveChanges();
    }
    return …
Run Code Online (Sandbox Code Playgroud)

c# model-view-controller entity-framework

7
推荐指数
1
解决办法
259
查看次数