Предположим следующие классы:EF проверка коллекции инициализируется состояние
public class Author
{
public virtual string Name { get; set; }
public virtual List<Book> Books { get; set; }
}
public class Book
{
public virtual string Name { get; set; }
public virtual Author Author { get; set; }
}
public class Controller
{
public void DeleteBook(Book book)
{
var author = book.Author; //first check if it is loaded, not to invoke lazy loading?
author.Books.Remove(book) //check if the books collection is loaded?
book.Author = null;
Context.Set<Book>().Remove(book);
}
}
Мой вопрос - есть ли способ в EF, чтобы проверить два «загружается» состояния? Я хочу, чтобы автор книг и коллекция книг не были загружены только для того, чтобы их можно было отключить.
Я хочу написать что-то вроде:
public class Controller
{
public void DeleteBook(Book book)
{
if (EF.IsLoaded(book.Author)) //has it been (lazy) loaded/initialized?
{
if (EF.IsLoaded(book.Author.Books) //has it been (lazy) loaded/initialized?
{
book.Author.Books.Remove(book);
}
book.Author = null;
}
Context.Set<Book>().Remove(book);
}
}
Возможно ли это?
из интереса, что вы имеете в виду диссоциирует? Тот факт, что связанный объект загружен в контекст или нет, не изменяет связь. –