zoukankan      html  css  js  c++  java
  • EF-CodeFirst-表关系-延迟/贪婪加载

    表关系建立

    http://blog.csdn.net/niewq/article/details/17232321

    一对多:

    namespace LckLib.EF.V6.Models
    {
        public class Role
        {
            public int ID { get; set; }
            [MaxLength(20)]
            [Required]
            public string RoleName { get; set; }
            public string Remark { get; set; }
            public virtual List<User> Users { get; set; }
        }
    
        public class User
        {
            public int ID { get; set; }
            [MaxLength(20)]
            public string UserName { get; set; }
            public string Account { get; set; }
            public string Password { get; set; }
            public DateTime CreateDate { get; set; }
            public string Remark { get; set; }
            public virtual Role Role { get; set; }
        }
    }
    View Code

    多对多:

    namespace LckLib.EF.V6.Models
    {
        public class Activity
        {
            public int ActivityId { get; set; }
            [Required, MaxLength(50)]
            public string Name { get; set; }
            public List<Trip> Trips { get; set; }
        }
    
        public class Trip
        {
            public int TripId { get; set; }
            public DateTime StartDate { get; set; }
            public DateTime EndDate { get; set; }
            public decimal CostUSD { get; set; }
            public byte[] RowVersion { get; set; }
            public List<Activity> Activities { get; set; }
        }
    }
    View Code

    一对一:

    namespace LckLib.EF.V6.Models
    {
        public class Person
        {
            public int ID { get; set; }
            public int SocialSecurityNumber { get; set; }
            public string FirstName { get; set; }
            public string LastName { get; set; }
            [Timestamp]
            public byte[] RowVersion { get; set; }
            public PersonPhoto Photo { get; set; }
        }
    
        public class PersonPhoto
        {
            [Key, ForeignKey("PhotoOf")]
            public int ID { get; set; }
            public byte[] Photo { get; set; }
            public string Caption { get; set; }
            public Person PhotoOf { get; set; }
        }
    }
    View Code


    延迟加载:

    http://www.cnblogs.com/lei2007/p/3141051.html

    第一:在需要延迟加载的属性前加上virtual ,该属性的类型可以是任务的集合类型ICOLLOCT<T>或者是0/1..1关联属性。

    如: public virtual List<User> Users { get; set; }

    第二:在context构造器中开启延迟加载功能,延迟加载默认是开启的。

    namespace LckLib.EF.V6
    {
        public class LckDbContext : DbContext
        {
            public LckDbContext()
            {
                //默认是开启延迟加载
                this.Configuration.LazyLoadingEnabled = true;
            }
    
            public DbSet<User> Users { get; set; }
            public DbSet<Role> Roles { get; set; }
    
            public DbSet<Activity> Activities { get; set; }
            public DbSet<Trip> Trips { get; set; }
    
            public DbSet<Person> Persons { get; set; }
            public DbSet<PersonPhoto> PersonPhotos { get; set; }
    
        }
    }
    View Code

    贪婪加载:

                LckDbContext ef = new LckDbContext();
                var personInfo = from a in ef.Persons.Include("Photo")
                                 select a;
                Console.WriteLine(personInfo.FirstOrDefault().Photo.Caption);
    View Code
    1.职业成功的85%取决于职业心态,15%取决于职业技能 2.不只是上级要你去做或等待别人要你去做 3.营造积极友善的工作氛围,哪怕吹点善意的牛
  • 相关阅读:
    Unity3d 检查哪些prefab引用了某个UIAtlas
    Unity3D研究院之Prefab里面的Prefab关联问题(转)
    Unity3d 制作动态Mesh且可以随地面凹凸起伏
    Unity3d 制作物品平滑运动
    Unity3d 保存和使用地形高度
    【小姿势】如何搭建ipa下载web服务器(直接在手机打开浏览器安装)
    NGUI 不写一行代码实现翻拍效果
    Unity Assets目录下的特殊文件夹名称
    Unity3d 扩展自定义类Inspector
    MMO可见格子算法
  • 原文地址:https://www.cnblogs.com/i-blog/p/3513276.html
Copyright © 2011-2022 走看看