实体框架6 datagridview嵌套子数据绑定

时间:2016-03-18 20:12:21

标签: c# datagridview nested entity-framework-6

我正在尝试使用EF6和嵌套子对象在数据网格视图中保存已编辑数据。希望有人可以指出我正确的方向..

我有两个实体:

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Function { get; set; }
}

public class Function
{
    public int Id { get; set; }
    public int Property { get; set}
}

接下来我想在datagridview中显示Customer和child对象,如下所示: Id ..名称.. Function.Property

通过禁用AutoGenerateColumns来自定义Datagridview。 DataPropertyName设置为以下对象:

我创建了一个ModelView:

public class CustomerModelViewObject
{
    public int Id { get; set; }
    public string Name{ get; set; }            
    public int f_prop { get; set; } /* Function.Property */
}

到目前为止,这么好。我可以看到这些项目,我可以编辑它们。单击“保存”按钮时,我需要更改以反映到数据库,但我无法使其工作。我一直在寻找和寻找2天,但无济于事。

查询和数据源:

var q = from it in _context.KlantenConfigs
select new CustomerModelViewObject
{
    Id = it.Id,                        
    Name= it.Name,
    f_prop= it.Function.Property                      
};

klantenConfigDataView.DataSource = q.ToList();

我真的希望有人可以帮助我。我将永远感激不尽! : - )

1 个答案:

答案 0 :(得分:0)

要保存,您需要(在保存事件之后)从datagridview获取更新的值,更新_context.KlantenConfigs中的相关实体,然后调用_context.SaveChanges()

要获得一个简单的方法,请参阅以下答案:https://stackoverflow.com/a/21284808/3997704