2015-02-12 2 views
1

Я начинающий программист и столкнулся с проблемой, как избежать массового назначения, на данный момент у меня есть только два очень маленьких автора и книги сущностей.Избегайте массового назначения MVC

public class Book 
{ 
    public Book() 
    { 
     Authors = new List<Author>(); 
    } 
    public int? BookId { get; set; } 
    public string Title { get; set; } 
    public IList<Author> Authors { get; set; } 
} 

И я хотел бы избежать назначения (bookInDb.Title = book.Title), когда я обновление книги:

public void UpdateBook(Book book) 
    { 
     var bookInDb = GetBook(book.BookId.Value); 

     bookInDb.Title = book.Title; // I want this logic to be replaced in more elegent way 

     var authorsInDb = bookInDb.Authors.Select(f => f.AuthorId).ToList(); 

     var editedAuthors = book.Authors.Select(f => f.AuthorId).ToList(); 
     var authorToAdd = GetAuthorsToAdd(authorsInDb, editedAuthors); 

     authorToAdd.ToList().ForEach(x=>bookInDb.Authors.Add(x)); 

     var authorsIdToRemove = authorsInDb.Except(editedAuthors); 
     var authorsToRemove = AuthorsToRemove(bookInDb.Authors, authorsIdToRemove); 

     authorsToRemove.ToList().ForEach(x => bookInDb.Authors.Remove(x)); 

     _dbContext.SaveChanges(); 
    } 

Сейчас это не проблема, но если бы я больше Поля, я полагаюсь на это таким образом или есть намного более простой способ? Спасибо за ваши ответы.

ответ

0

UpdateBook([Bind(Exclude = "Title")] Book book)

Более подробную информацию и более приближается к here.

Смежные вопросы