Lazy Load:是指什么?在哪里用到过?
答:mvc中的m(Model)是模型,每个模型对应相应的数据表,然而数据表之间的主外键关系该怎么维系呢?对,就是用Lazy Load(延迟加载),这是一种思想:用到才加载,不用不加载。它在模型中体现在virtual这个关键字上,如下代码块:
答:mvc中的m(Model)是模型,每个模型对应相应的数据表,然而数据表之间的主外键关系该怎么维系呢?对,就是用Lazy Load(延迟加载),这是一种思想:用到才加载,不用不加载。它在模型中体现在virtual这个关键字上,如下代码块:
public class Album{//唱片类
public int AlbumId{get;set;} //主键
public int ArtistId{get;set;} //艺术家ID
public virtual Artist Artist{get;set;} //艺术家类(属于引用属性)
}
public class Artist
{
public int ArtistId { get; set; }
public string Name { get; set; }
}
如上段代码所示,每个唱片应该有对应的艺术家,这是明显的一对多的关系,在显示唱片的信息时候,如果想把对应的艺术家信息(姓名,年龄,艺术造诣等等)也输出,那么就要用到艺术家类,唱片表中保存了艺术家ID和艺术家类别,其实,只要在Album类中存在引用属性Artist 即可,不用在Artist 类中再设定导航属性。当然如果想在Artist 中设置导航属性,也就不用在类中设置引用属性(如下代码),二者有一即可。
public class Album{//唱片类
public int AlbumId{get;set;} //主键
public int ArtistId{get;set;} //艺术家ID
}
public class Artist
{
public int ArtistId { get; set; }
public string Name { get; set; }
public List<Album> Albums {get; set;}
}