Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public async Task UpdateMyEntity(int id, int? updatedProperty, string otherProperty)
- {
- using (var context = new MyDbContext())
- {
- var entity = new MyEntity { Id = id };
- context.MyEntities.Attach(entity);
- if (updatedProperty != null) { entity.Property = updatedProperty.Value; }
- if (!string.IsNullOrEmpty(otherProperty) { entity.OtherProperty = otherProperty; }
- await context.SaveChangesAsync();
- }
- }
- public class MyEntity
- {
- public int Id { get; set; }
- public int Property { get; set; }
- [Required]
- public string OtherProperty { get; set; }
- [Required]
- public OtherEntity Related { get; set; }
- }
- public class OtherEntity
- {
- public int Id { get; set; }
- public string SomeProperty { get; set; }
- }
- var entity = new MyEntity { Id = 123 }; // an entity with this id exists in db
- context.MyEntities.Attach(entity);
- if (updatedProperty != null) { entity.Property = updatedProperty.Value; }
- await context.SaveChangesAsync();
- protected override DbEntityValidationResult ValidateEntity(
- DbEntityEntry entityEntry,
- IDictionary<object, object> items)
- {
- var result = base.ValidateEntity(entityEntry, items);
- var falseErrors = result.ValidationErrors
- .Where(error =>
- {
- var member = entityEntry.Member(error.PropertyName);
- var property = member as DbPropertyEntry;
- if (property != null)
- return !property.IsModified;
- else
- return false;//not false err;
- });
- foreach (var error in falseErrors.ToArray())
- result.ValidationErrors.Remove(error);
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement