0
mvc에서 Dbset/Dbcontext를 사용할 때 sql을 사용하여 어떤 시점에서 테이블이 쿼리됩니까? 그리고 어떤 시점에서 Linq 문이 쿼리하는 List에로드 된 테이블이 있습니까?linq 전에 또는 linq 후에 Dbset/Dbcontext 목록이로드되었습니다
내가
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 쿼리는 어떤 단계에서 수행됩니까?
그래서 비공개 변수를 선언하면 비어 있습니까? –
글쎄, 그건 완전히 다른 질문이지만,'DbContext'가 초기화 되 자마자 데이터베이스에 접근하는지 여부를 뜻한다면 : no. 당신이 보인 코드에서,'.Find()'에서만 데이터베이스가 적중 될 것입니다. – CodeCaster
덕분에 많은 일이 명확 해졌습니다. –