Answers:
到目前为止,我知道这些影响。
public virtual byte[] bigData { get; set; }
”延迟加载吗?
.Select(a=>new { fields you want })
。
这个虚拟关键字与从实体框架加载数据的主题(延迟加载,急切加载和显式加载)有关。
如果要通过延迟加载来加载数据,则应使用virtual关键字。
延迟加载是一种过程,通过该过程,首次访问数据库时会自动从数据库中加载实体或实体集合。
例如,当使用下面定义的Blog实体类时,相关的Posts将在首次访问Posts导航属性时加载:
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; }
}
通过使Posts属性为非虚拟,可以关闭Posts集合的延迟加载。
如果关闭了延迟加载,仍然可以使用预先加载(使用Include方法)或显式加载相关实体(使用Load方法)来实现Posts集合的加载。
热切加载:
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();
}
Include()
。