Advertisement
Guest User

Untitled

a guest
Aug 5th, 2015
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. public async Task UpdateMyEntity(int id, int? updatedProperty, string otherProperty)
  2. {
  3. using (var context = new MyDbContext())
  4. {
  5. var entity = new MyEntity { Id = id };
  6. context.MyEntities.Attach(entity);
  7.  
  8. if (updatedProperty != null) { entity.Property = updatedProperty.Value; }
  9. if (!string.IsNullOrEmpty(otherProperty) { entity.OtherProperty = otherProperty; }
  10.  
  11. await context.SaveChangesAsync();
  12. }
  13. }
  14.  
  15. public class MyEntity
  16. {
  17. public int Id { get; set; }
  18. public int Property { get; set; }
  19. [Required]
  20. public string OtherProperty { get; set; }
  21. [Required]
  22. public OtherEntity Related { get; set; }
  23. }
  24.  
  25. public class OtherEntity
  26. {
  27. public int Id { get; set; }
  28. public string SomeProperty { get; set; }
  29. }
  30.  
  31. var entity = new MyEntity { Id = 123 }; // an entity with this id exists in db
  32. context.MyEntities.Attach(entity);
  33.  
  34. if (updatedProperty != null) { entity.Property = updatedProperty.Value; }
  35.  
  36. await context.SaveChangesAsync();
  37.  
  38. protected override DbEntityValidationResult ValidateEntity(
  39. DbEntityEntry entityEntry,
  40. IDictionary<object, object> items)
  41. {
  42. var result = base.ValidateEntity(entityEntry, items);
  43. var falseErrors = result.ValidationErrors
  44. .Where(error =>
  45. {
  46. var member = entityEntry.Member(error.PropertyName);
  47. var property = member as DbPropertyEntry;
  48. if (property != null)
  49. return !property.IsModified;
  50. else
  51. return false;//not false err;
  52. });
  53.  
  54. foreach (var error in falseErrors.ToArray())
  55. result.ValidationErrors.Remove(error);
  56. return result;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement