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);  
    }
  • 相关阅读:
    java 枚举
    日志监控
    bindActionCreators
    npm 重点小结
    怎么评价Facebook的Relay框架?Meteor.js 是什么?
    解决跨域问题
    React Test相关资料
    深入理解JavaScript系列
    前端mac下的工具
    WebKit的CSS扩展(WebKit是私有属性)
  • 原文地址:https://www.cnblogs.com/panjuan/p/4800335.html
Copyright © 2011-2022 走看看