视频演示:http://u.115.com/file/f2edccc01b
演示重点
一对一的映射关系和一对多的映射关系基本相同,区别不是太大。
建立一对一映射关系时,虽然可以综合使用EntityRef和EntitySet,但推荐在在实体的两方都使用EntityRef,不推荐使用EntitySet,但也要谨防发生【未将对象引用设置到对象实例】的异常。
研习记录此测试代码主要是用来演练LINQ to SQL一对一的映射关系,试图通过这个演练来掌握这种映射关系是如何在对象模型中被定义的。
此演示是将项目中的数据库复制到C:/LINQ文件夹下。如果数据库没有保存在这个文件夹,那就需要修改代码中的连接字符串。
根据微软文档的说法,要向建立一对一的映射关系,可以在两个实体类中使用EntitySet来建立这种关系。不过,根据我观察对象关系设计器所生成的代码来看,似乎应该使用EntityRef。从这两个类型来看,似乎EntityRef更适合于建立一对一的关系。
首先来测试一下,建立一对一的映射关系时,到底是使用EntitySet?还是EntityRef?
测试的结果表明,完全可以EntityRef来建立一对一的映射关系,而且在设置AssociationAttribute的时候,只需要正确的设置其Storage、ThisKey和OtherKey的属性,就能建立起良好的一对一的映射关系。
哎,真是没天理了,经过测试,才发现,竟然使用EntitySet来建立实体类间的一对一的映射关系也是完全可以的。哎!这什么世道呀!不过,因为EntitySet是个集合,所以我们还需要调用它的First()方法来获取其中的第一个元素,因为我们建立的是一对一的映射关系。而非多对多的映射关系。
至于结合EntityRef和EntitySet来建立这种一对一的映射关系,那自然是不用说的可以了。这点,我相信用脚趾头都能想的明白了。
但是,在这三种选择中,我看还是单纯的使用EntityRef比较妥当点,这种类型的属性引用更能体现出一对一的映射关系,而且说不定其效率还会比另外两种高一点,特别是比单纯的使用EntitySet。不过,这只是推测,并未经过测试验证。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
面对近一年的裁员潮,以及 GPT 出现带来的 AI 颠覆潮流,各种话题出现:「前端已死」、「后端已死」、「Copy/Paste 程序员将被 AI 取代」。程序员行业是否还有发展空间? 这一两年的就业机会是因为经济衰落周期内造成的,…