time 
设为首页】【收藏本站
当前位置: 主页 > 程序设计 > .net > .net入门 > EF5.x Code First表关联与贪婪加载、延迟加载使用示例

EF5.x Code First表关联与贪婪加载、延迟加载使用示例

时间:2013-07-25 22:54 点击:7127次 字体:[ ]




晚上体验了一把EF的对象关联,确实强悍!

EF数据库对象的外键管理方式

1-指定导航属性,会自动生成外键,命名规则为:“表名_主键名”
2-默认情况下与导航属性的主键名称相同的字段会自动被标记为外键
3-通过[ForeignKey]标记指定实体类的属性为外键,
4-方式2的升级版,与导航属性的主键名称相同的字段会自动被标记为外键,然后指定字段对应的数据库中的列名

案例:

组织架构n : 1【组织用户关联】1 :n用户

EF5.x Code First表关联与贪婪加载、延迟加载使用示例_www.fengfly.com

  1. using System;  
  2. /**  
  3.  * 作者:陈杰  
  4.  * 时间:2012-08-10 00:25  
  5.  * 功能:公共字段接口  
  6.  **/ 
  7. namespace ElegantWM.EntityModel  
  8. {  
  9.     public interface IEntity  
  10.     {  
  11.         Guid Id { getset; }  
  12.  
  13.         string CreateUser { getset; }  
  14.         DateTime CreateTime { getset; }  
  15.         string ModifyUser { getset; }  
  16.         DateTime? ModifyTime { getset; }  
  17.         Byte[] RowVersion { getset; }  
  18.     }  
  1. using System;  
  2. using System.Collections;  
  3. using System.ComponentModel;  
  4. using System.ComponentModel.DataAnnotations;  
  5. /**  
  6.  * 作者:陈杰  
  7.  * 时间:2012-08-10 00:25  
  8.  * 功能:公共字段接口实现类  
  9.  **/ 
  10. namespace ElegantWM.EntityModel  
  11. {  
  12.     public class Entity:IEntity  
  13.     {  
  14.         public Guid Id { getset; }  
  15.  
  16.         public string CreateUser { getset; }  
  17.         public DateTime CreateTime { getset; }  
  18.         public string ModifyUser { getset; }  
  19.         public DateTime? ModifyTime { getset; }  
  20.         [Timestamp]  
  21.         public Byte[] RowVersion { getset; }  
  22.     }  

以上两个类为数据库实体的公共属性,但随着业务的复杂度增加,感觉提取实体的公共字段并不是很妥当,可适当折中考虑。

  1. /*  组织架构实体  */ 
  2. using System;  
  3. using System.Collections.Generic;  
  4. using System.Linq;  
  5. using System.Text;  
  6.  
  7. namespace ElegantWM.EntityModel  
  8. {  
  9.     public class WMS_Org : Entity  
  10.     {  
  11.         public WMS_Org() { }  
  12.  
  13.         public string OrgName { getset; }  
  14.         public string OrgDesc { getset; }  
  15.         public int OrgOrder { getset; }  
  16.         public string OrgFatherId { getset; }  
  17.         public virtual ICollection<WMS_OrgUser> OrgUserIds { getset; }  
  18.     }  



本文地址 : http://www.fengfly.com/plus/view-213236-1.html
标签: Code First EF 延迟加载 表关联 贪婪加载
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: