是在linq之前还是在linq之后加载的Dbset/Dbcontext列表
本文关键字:linq Dbset Dbcontext 列表 加载 是在 之后 | 更新日期: 2023-09-27 18:21:47
在mvc中,当您使用sql使用Dbset/Dbcontext时,表在什么时候被查询?Linq语句正在查询的List中的表在什么时候加载?
比方说我有一个类似的模型
public class MRN : DbContext
{
public MRN()
: base("DefaultConnection")
{
}
public DbSet<message> MRNS { get; set; }
}
[Table("MRN")]
public class message
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string From { get; set; }
}
我的控制器就像
public class MRNController : Controller
{
private MRN mrn = new MRN(); // Is the linq list loaded here?
public ActionResult Someaction(){........
......}
动作
public ActionResult somelinq(int id)
{
var k = mrn.MRNS.Find(id); //Is the private variable **mrn** already loaded here or does it loads during the linq statement or does linq queries actual table itself?
}
有人能详细说明SQL表的加载情况吗?即实际的SQL查询是在什么步骤执行的?
一旦实现IQueryable
,就会立即执行查询。例如,在其上调用.First/Single(OrDefault)
、.ToList()
或foreach
时。