EntityFramework(EF) 單表與主從表的使用


一、單表Reader

1 構建Reader類

public   class Reader
    {
       public int ReaderID { get; set; }
       public string Name { get; set; }
       public int Age { get; set; }
       public string Tel { get; set; }
    
    }

2、構建數據上下文類

 //單表數據上下文
   

 public class SingleDbContext :DbContext
    {
        public DbSet<Reader> Readers { get; set; }
        public SingleDbContext() : base("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=NewsDB;Data Source=.") { }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {//防止自動把表名改成了復數形式
                  modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();
        }

    }

3、在程序中測試

   static void SingleTable()
        {
            ///添加
            var reader = new Reader
            {
                Name = "xp",
                Age = 18,
                Tel = "135993434"
            };
            var database = new SingleDbContext();
            database.Readers.Add(reader);
            int rows = database.SaveChanges();


            //查詢
            using (var context = new SingleDbContext())
            {
                var readers = from r in context.Readers where r.Name == "xp" select r;
                foreach (Reader r in readers)
                    Console.WriteLine("name:" + r.Name);
            }

        }

 

二 主從表

Department

Course

1 構建類

public class Department
    {
        public virtual ICollection<Course> Course { get; set; }
        public int DepartmentID { get; set; }        
        public string Name { get; set; }
        public string Tel { get; set; }
    }

 

 public class Course
    {
       // Primary key
      public int CourseID { get; set; }
      public string Title { get; set; }
      public int Credits { get; set; }
    // Foreign key
     public int DepartmentID { get; set; }
        // Navigationproperties
     public virtual Department Department { get; set;}
   }

二構建數據上下文

 public class MasterSlaveDbContext: DbContext
    {
        public DbSet<Department> Department { get; set; }
        public DbSet<Course> Course { get; set; }
        public MasterSlaveDbContext() : base("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=NewsDB;Data Source=.") { }
        
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {//防止自動把表名改成了復數形式
            modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();
        }
    }

 

三、測試使用

static  void MasterSlaveTable()
        {
            ///添加
            var department = new Department
            {
                Name = "計算機科學學院",
                Tel = "83031222"
            };
            var database = new MasterSlaveDbContext();
            database.Department.Add(department);
            int rows = database.SaveChanges();
           
            var course = new Course
            {
                Title = "高數",
                Credits = 4,
                DepartmentID= department.DepartmentID//自動獲取遞增主鍵
            };
            database.Course.Add(course);
            database.SaveChanges();


            //查詢
            using (var context = new MasterSlaveDbContext())
            {


                var dp = from d in context.Department.Include("Course") where d.DepartmentID  == 8 select d;
                foreach (Department d in dp)
                {
                    foreach (Course  c in d.Course)
                    {
                        Console.WriteLine("name:" + c.Title);
                    }
                }
            }


        }

 

源代碼:http://download.csdn.net/detail/metal1/9855473


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM