我有以下通用代码来更新一个断开连接的实体:
```csharp public void Update(TEntity entityToUpdate) where TEntity : class { context.Set().Attach(entityToUpdate); context.Entry(entityToUpdate).State = EntityState.Modified; } ```
该方法使用泛型来接收任何类型的实体,并使用 Entity Framework 的上下文对象将其附加到数据库中。然后,它将实体状态设置为修改,以便在保存更改时将其更新到数据库中。
如果我的实体包含导航属性,这些属性不会被附加并设置为修改状态。有没有办法改变这个通用方法,将所有导航属性都附加并设置为修改状态?
```csharp public void Update(TEntity entityToUpdate) where TEntity : class { context.Set().Attach(entityToUpdate); context.Entry(entityToUpdate).State = EntityState.Modified; } ```
该方法使用泛型来接收任何类型的实体,并使用 Entity Framework 的上下文对象将其附加到数据库中。然后,它将实体状态设置为修改,以便在保存更改时将其更新到数据库中。
public T UpdateItem(T entity)
{
this._dbSet.Attach(entity);
this._dbContext.Entry(entity).State = System.Data.EntityState.Modified;
this._dbContext.SaveChanges();
return entity;
}
如果我的实体包含导航属性,这些属性不会被附加并设置为修改状态。有没有办法改变这个通用方法,将所有导航属性都附加并设置为修改状态?
dynamic
,但有点惊讶于typeof(IEnumerable<dynamic>).IsAssignableFrom
是有效的。这是否基本上解析为IEnumerable<object>
或者在评估过程中它会自动用prop.PropertyType
替换dynamic
? - xr280xr