Это ключевое слово virtual связано с темой загрузки данных из структуры сущностей (отложенная загрузка, активная загрузка и явная загрузка).
Вы должны использовать ключевое слово virtual, когда вы хотите загружать данные с отложенной загрузкой.
ленивая загрузка - это процесс, при котором сущность или набор сущностей автоматически загружается из базы данных при первом обращении к ней.
Например, при использовании класса сущности Blog, определенного ниже, связанные сообщения будут загружены при первом доступе к свойству навигации по сообщениям:
public class Blog
{
public int BlogId { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public string Tags { get; set; }
public virtual ICollection<Post> Posts { get; set; }
}
Ленивую загрузку коллекции сообщений можно отключить, сделав свойство сообщений не виртуальным.
если ленивая загрузка отключена, загрузка коллекции сообщений все еще может быть достигнута с помощью активной загрузки (с использованием метода Include) или явной загрузки связанных сущностей (с помощью метода Load).
Жадно загружается:
using (var context = new BloggingContext())
{
// Load all blogs and related posts
var blogs1 = context.Blogs
.Include(b => b.Posts)
.ToList();
}
Явная загрузка:
using (var context = new BloggingContext())
{
var blog = context.Blogs.Find(1);
// Load the posts related to a given blog
context.Entry(blog).Collection(p => p.Posts).Load();
}
person
Parsa
schedule
06.01.2016