我在这里找到了以下代码:Breeze BeforeSaveEntityonly 只允许更新第二个答案中的已添加实体。据我了解,它不能(按原样)工作,因为该属性ModificationDate
不是通用实体的已知属性。我得到一个编译错误object does not contain a definition for 'ModificationDate' and no extension method 'ModificationDate' accepting a first argument of type 'object' could be found
protected override bool BeforeSaveEntity(EntityInfo entityInfo)
{
if(entityInfo.EntityState== EntityState.Modified)
{
var entity = entityInfo.Entity;
entityInfo.OriginalValuesMap.Add("ModificationDate", entity.ModificationDate);
entity.ModificationDate = DateTime.Now;
}
}
我们应该这样进行:
protected override bool BeforeSaveEntity(EntityInfo entityInfo)
{
if(entityInfo.EntityState== EntityState.Modified)
{
Product entity = (Product)entityInfo.Entity;
entityInfo.OriginalValuesMap.Add("ModificationDate", entity.ModificationDate);
entity.ModificationDate = DateTime.Now;
}
}
然后使用这个修改后的代码版本,命名实体Product
有一个名为的属性ModificationDate
,然后一切都编译得很好。
我的问题:如果我们仍然想使用通用实体(使用var
声明)怎么办,因为我们想将此代码用于不同的实体(产品,客户,...)。可能吗?
希望我的问题足够清楚。
谢谢。