我想检查一个实体是否有 3 个属性。CreatedDate、ModifiedDate 和 ModifiedBy。
现在我只是在我的对象上下文的 SaveChanges() 方法中对我知道的那些进行硬编码。
例如:
bool newEntity = (entry.State == EntityState.Added);
if (type == typeof(Foo))
{
var r = entry.Entity as Foo;
if (r != null)
{
if (newEntity)
r.CreatedDate = DateTime.Now;
r.ModifiedDate = DateTime.Now;
r.ModifiedBy = HttpContext.Current.User.Identity.Name;
}
}
我知道可以使用类似于以下的代码检查对象是否具有某种方法:
public static bool HasMethod(this object objectToCheck, string methodName)
{
var type = objectToCheck.GetType();
return type.GetMethod(methodName) != null;
}
但是,如果不直接投射实体,我将如何获得这些属性呢?
我该怎么做:
if (HasMethod(entry.Entity))
entry.Entity.ModifiedDate = DateTime.Now;
我正在使用 ASP.Net MVC 4。