问题描述
首先抱歉我的英语不好。之后,当我使用存储库添加更新或SoftDelete更新我创建,更新或删除的属性时,我想做。我可以在父模型上做到这一点,但我也想在我的孩子模型上做到这一点。
示例:
public void Update(T entity)
{
//Todo: Created values (CreatedId,CreatedDate,CreatedIp) has been null fix this
//T _entity = this.GetById(int.Parse(typeof(T).GetProperty("Id").GetValue(entity).ToString()));
//typeof(T).GetProperty("CreatedId").SetValue(entity,typeof(T).GetProperty("CreatedId").GetValue(_entity));
//typeof(T).GetProperty("CreatedIp").SetValue(entity,typeof(T).GetProperty("CreatedIp").GetValue(_entity));
typeof(T).GetProperty("UpdatedId").SetValue(entity,int.Parse(_current.User.Claims.FirstOrDefault(x=>x.Type==System.Security.Claims.ClaimTypes.NameIdentifier).Value));
typeof(T).GetProperty("UpdatedDate").SetValue(entity,DateTime.Now);
typeof(T).GetProperty("UpdatedIp").SetValue(entity,LocalIPAddress);
_dbSet.Attach(entity);
_dbContext.Entry(entity).State = EntityState.Modified;
}
我需要更改子模型的EntryState属性。
父模型:
public class Page : BaseModel
{
public Page()
{
PageTrans = new List<PageTrans>();
}
public bool ActivePassive { get; set; }
[NotMapped]
public virtual List<PageTrans> PageTrans { get; set; }
}
子模型:
public class PageTrans : BaseModel
{
public string Name { get; set; }
public string Summary { get; set; }
public string Content { get; set; }
public string CoverImagePath { get; set; }
[NotMapped]
public IFormFile CoverImageFile { get; set; }
public int PageId { get; set; }
[ForeignKey("PageId")]
public Page Page { get; set; }
public int LanguageId { get; set; }
[ForeignKey("LanguageId")]
public Language Language { get; set; }
}
BaseModel:
public class BaseModel
{
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public int? CreatedId { get; set; }
public DateTime CreatedDate { get; set; } = DateTime.Now;
public string CreatedIp { get; set; }
public int? UpdatedId { get; set; }
public DateTime? UpdatedDate { get; set; }
public string UpdatedIp { get; set; }
public int? DeletedId { get; set; }
public DateTime? DeletedDate { get; set; }
public string DeletedIp { get; set; }
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)