0

我遇到了一个非常奇怪的场景,我的 EDMX 文件中有这个模型(客户)

public int ID { get; set; }
    public string CompanyName { get; set; }
    public string PhoneNo { get; set; }
    public string FaxNo { get; set; }
    public string CustomerNo { get; set; }
    public Nullable<System.DateTime> Modified { get; set; }
    public System.DateTime Created { get; set; }
    public Nullable<int> PMFormID { get; set; }
    public Nullable<int> InspectionFormID { get; set; }
    public Nullable<int> RepairFormID { get; set; }
    public string Email { get; set; }

现在当我试图更新这个`

Customer customerToUpdate = _context.Customers.Where(c => c.ID == customer.ID).SingleOrDefault(); 
        customerToUpdate.CompanyName = customer.CompanyName;
        customerToUpdate.CustomerNo = customer.CustomerNo;
        customerToUpdate.PhoneNo = customer.PhoneNo;
        customerToUpdate.FaxNo = customer.FaxNo;
        customerToUpdate.Modified = DateTime.Now;
        customerToUpdate.InspectionFormID = customer.InspectionFormID;
        customerToUpdate.PMFormID = customer.PMFormID;
        customerToUpdate.RepairFormID = customer.RepairFormID;
        customerToUpdate.Email = customer.Email;
        context.SaveChanges();

除已修改字段外,所有字段均已更新。它的值仍然为空。怎么了?请帮忙

4

1 回答 1

0

真的很奇怪。试试这种方式:

customer.Modified = DateTime.Now;

// This should find Customer by EntityKey and apply all fields to context entry
// so you shouldn't assign each property value
_context.Customers.ApplyCurrentValues(customer);

_context.SaveChanges();

Modified或者在数据库级别实现字段行为作为 SQL UPDATE 触发器可能更好?

于 2013-07-31T11:25:47.290 回答