例如:
Html.TextBoxFor(x => x.ModelProperty)
Run Code Online (Sandbox Code Playgroud)
如果我要将这样的表达式作为方法参数,我将如何从表达式中获取引用的属性?我对表达式的体验有点受限,根据我的知识,我不知道它是如何工作的.
让我们假设以下代码处理DataContext的SaveChanges事件
void Context_SavingChanges(object sender, EventArgs e)
{
IEnumerable<ObjectStateEntry> objectStateEntries =
from ose in this.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted)
where ose.Entity != null
select ose;
foreach (ObjectStateEntry entry in objectStateEntries)
{
foreach (var field in entry.CurrentValues.DataRecordInfo.FieldMetadata)
{
var guid = Guid.NewGuid();
AuditEntry audit = AuditEntry.CreateAuditEntry(
id: guid,
entitySet: entry.EntitySet.Name,
typeName: entry.Entity.GetType().Name,
entityId: (entry.CurrentValues["Id"] as string) ?? ((entry.State == EntityState.Added) ? "New" : null),
oldValue: (entry.State != EntityState.Added) ? entry.OriginalValues[field.FieldType.Name].ToString() : "New",
newValue: (entry.State != EntityState.Deleted) ? entry.CurrentValues[field.FieldType.Name].ToString() : "Deleted",
modifier: Environment.UserDomainName …Run Code Online (Sandbox Code Playgroud)