簡體   English   中英

如果是通用實體,如何在Entity Framework 6中設置導航屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM