zoukankan      html  css  js  c++  java
  • EF多个表映射

    public class Media // One entity table
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public bool Enabled { get; set; }
    
        public virtual ICollection<ContractMedia> ContractMedias { get; set; }
    }
    
    public class Contract // Second entity table
    {
        public int Id { get; set; }
        public string Code { get; set }
    
        public virtual ICollection<ContractMedia> ContractMedias { get; set; }
    }
    
    public class ContractMedia // Association table implemented as entity
    {
        public int MediaId { get; set; }
        public int ContractId { get; set; }
        public DateTime StartDate { get; set; }
        public DateTime EndDate { get; set; }
        public double Price { get; set; }
    
        public virtual ICollection<Media> Medias { get; set; }
        public virtual ICollection<Contract> Contracts { get; set; }
    }
    

    And after you created models/entities, you need to define relationships in context:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
       modelBuilder.Entity<ContractMedia>()
           .HasKey(c => new { c.MediaId, c.ContractId });
    
       modelBuilder.Entity<Contract>()
           .HasMany(c => c.ContractMedias)
           .WithRequired()
           .HasForeignKey(c => c.ContractId);
    
       modelBuilder.Entity<Media>()
           .HasMany(c => c.ContractMedias)
           .WithRequired()
           .HasForeignKey(c => c.MediaId);  
    }
  • 相关阅读:
    linux中断处理浅析
    linux页面回收浅析
    linux线程同步浅析
    剖析一个由sendfile引发的linux内核BUG
    比memcpy更快的内存拷贝
    linux内核SMP负载均衡浅析
    sscanf,snprintf
    mysql中实现longblob数据流式读写
    sscanf
    substr复制字符串的一部分
  • 原文地址:https://www.cnblogs.com/panjuan/p/4800335.html
Copyright © 2011-2022 走看看