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);  
    }
  • 相关阅读:
    python搭建开发环境
    django初探
    linux下安装Composer
    文件记录追加 file_put_content
    自定义导出表格
    异步处理接口 fsockopen
    appcache checking update
    js pix
    Event Aggregator
    ko list and css gradient
  • 原文地址:https://www.cnblogs.com/panjuan/p/4800335.html
Copyright © 2011-2022 走看看