我正在使用以下代码使用来自DB第一个模型的数据填充DevExpress XtraGrid。调用SaveChanges
没有任何效果,我认为这是因为没有与我为网格选择的对象匹配的缓存对象。
有什么方法可以告诉EF使用PK Id
在保存的更改期间将新值应用于缓存对象?如果我使用网格的整个Employee对象,则调用SaveChanges
。
private void EmployeeFormLoad(object sender, EventArgs e)
{
empsGridView.OptionsBehavior.Editable = true;
var emps = context.Employees.Select(emp => new EmployeeDescriptor
{
Id = emp.Id,
FirstName = emp.FullNames,
LastName = emp.Surname
});
employeeDescriptorBindingSource.DataSource = emps.ToList();
}
private void button1_Click(object sender, EventArgs e)
{
employeeDescriptorBindingSource.EndEdit();
context.SaveChanges();
}
答案 0 :(得分:0)
匿名类型在C#中是不可变的。在VB中,您可以使用“Key”关键字使它们变得可变,尽管我不确定EF是否尊重更新。如果希望模型可编辑,请将概念模型更改为仅包含所需的字段,并确保未使用的表列都可以为空。