Entityframework缓存的奇怪行为?

时间:2018-01-24 14:49:18

标签: entity-framework entity-framework-core

看看这个非常基本的例子。

以下是2个实体框架模型:

public class Voitures
{
    public int id { get; set; }
    public string nom_voiture { get; set; }

    public int MarqueId { get; set; }
    public Marques marque { get; set; }
}

public class Marques
{
    public int id { get; set; }
    public string nom_marque { get; set; }
}

这是一个控制器动作方法:

public IActionResult GetVoiture(int id)
{
    var voiture = bdd.voitures.FirstOrDefault(v => v.id == id);
    return Json(voiture);
}

以下是我得到的结果:

{"id":2,"nom_voiture":"golf","marqueId":1,"marque":null}

如您所见,对象“marque”为空。

现在,如果我只是在方法控制器中添加一行,请查看结果:

public IActionResult GetVoiture(int id)
{
   var voiture = bdd.voitures.FirstOrDefault(v => v.id == id);
   var m = bdd.marques.FirstOrDefault(f => f.id == voiture.MarqueId);
   return Json(voiture);
}

您可以看到marque对象不为空。

{"id":2,"nom_voiture":"golf","marqueId":1,"marque":{"id":1,"nom_marque":"VW"}}

这对我来说很奇怪,因为“m”变量没有分配给任何东西所以我不明白框架如何知道并获取内存中的marque对象......

由于

0 个答案:

没有答案