我在我的域模型中具有兩個日期時間類型屬性entrydate和updatedon的此實體服務。當更新標記實體日期時間屬性不變
當編輯視圖中的用戶進行任何更改並將表單提交回來時,我希望被標記爲更改的postingback/modified對象的entrydate屬性使得entrydate在執行更新時不能被覆蓋。被更改保存到數據庫
public class Service
{
public int ServiceID
{
get;
set;
}
[Required(ErrorMessage="Please enter Name")]
public string Name
{
get;
set;
}
[Required(ErrorMessage="Please enter the duration for the service")]
public short Duration
{
get;
set;
}
[DataType(DataType.Date)]
public DateTime EntryDate
{
get;
set;
}
[DataType(DataType.Date)]
public DateTime UpdatedOn
{
get;
set;
}
public decimal Cost
{
get; set;
}
}
庫方法如下:
else {
// Existing entity
var serviceInDb = context.Services.Find(service.ServiceID);
service.EntryDate = serviceInDb.EntryDate;
context.Entry(serviceInDb).CurrentValues.SetValues(service);
}
當你調用SaveChanges
更高版本的更新:
public void InsertOrUpdate(Service service)
{
if (service.ServiceID == default(int)) {
// New entity
context.Services.Add(service);
} else {
// Existing entity
context.Entry(service).State = EntityState.Modified;
}
}
避免模型驅動驗證。 – zsong
你如何保存實體? –
現在您知道我如何將更改保存到我的實體。上述代碼已更新 – najam