[英]How to set navigation property in Entity Framework 6 in case of generic entities
我已經更新了如下的通用更新方法
public virtual void Update<TEntity>(TEntity entity, string modifiedBy =
null) where TEntity : class,IEntity
{
using (var context = new BanyanDbContext())
{
entity.ModifiedDate = DateTime.UtcNow;
entity.ModifiedBy = modifiedBy;
var existingEntiy = context.Set<TEntity>().Find(entity.Id);
context.Entry(existingEntiy).CurrentValues.SetValues(entity);
context.Entry(existingEntiy).State = EntityState.Modified;
Save(context);
}
}
此方法對於更新非引用類型的值效果很好,但是CurrentValues.SetValues()
不會設置或更新導航屬性。 在這種情況下,如何設置導航屬性。
public TEntity RemoveNavigationProperties(TEntity input)
{
foreach (var item in input.GetType().GetProperties().Where(x => x.PropertyType.Namespace == input.GetType().Namespace))
{
item.SetValue(input, null);
}
return input;
}
這對我有用。 (我只需要使它們為空)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.