fixed UpdateFields in basic repository.

This commit is contained in:
kay.one 2013-03-26 23:16:55 -07:00
commit eaff6dc18f
4 changed files with 11 additions and 10 deletions

View file

@ -26,7 +26,7 @@ namespace NzbDrone.Core.Datastore
void Purge();
bool HasItems();
void DeleteMany(IEnumerable<int> ids);
void UpdateFields<TKey>(TModel model, Expression<Func<TModel, TKey>> onlyFields);
void SetFields(TModel model, params Expression<Func<TModel, object>>[] properties);
}
public class BasicRepository<TModel> : IBasicRepository<TModel> where TModel : ModelBase, new()
@ -148,16 +148,19 @@ namespace NzbDrone.Core.Datastore
return Count() > 0;
}
public void UpdateFields<TKey>(TModel model, Expression<Func<TModel, TKey>> onlyFields)
public void SetFields(TModel model, params Expression<Func<TModel, object>>[] properties)
{
if (model.Id == 0)
{
throw new InvalidOperationException("Attempted to updated model without ID");
}
_dataMapper.Update<TModel>(model, m => m.Id == model.Id);
// _database.UpdateOnly(model, onlyFields, m => m.Id == model.Id);
_dataMapper.Update<TModel>()
.Where(c => c.Id == model.Id)
.ColumnsIncluding(properties)
.Entity(model)
.Execute();
}
}
}