我正在尝试使用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();
我真的希望有人可以帮助我。我将永远感激不尽! : - )
答案 0 :(得分:0)
要保存,您需要(在保存事件之后)从datagridview获取更新的值,更新_context.KlantenConfigs
中的相关实体,然后调用_context.SaveChanges()
要获得一个简单的方法,请参阅以下答案:https://stackoverflow.com/a/21284808/3997704