• EF 通过导航添加数据


    Fluent Api是指定模型与数据库表之间的对应关系

    //一对多 
    this.HasOptional(x => x.主表).WithMany(x => x.多表).HasForeignKey(x => x.多表关联的主表id);
    
    //一对一
    
     this.HasRequired(x => x.表1).WithOptional(x => x.表2);

    表中都有对应的主键,没有外键

    两个表实体如下

    用户表

    public class User
    {
        public User()
        {
            Orders =new HashSet<OrderInfo>()
        }
    
        public int Id{get;set;}
        public string Name{get;set;}
    
        public virtual ICollection<OrderInfo> Orders {get;set;}
    }

    订单表

    public class OrderInfo
        {
            public int Id { get; set; }
            public string OrderNo { get; set; }
    
            public string OrderName { get; set; }
            public virtual User User { get; set; }
        }

    通过Fluent Api指定用户与订单的对应关系

     public class OrderInfo: EntityTypeConfiguration<OrderInfo>
        {
            public OrderInfo()
            {
                // Primary Key
                this.HasKey(t => t.Id);
    
              // Table & Column Mappings
                this.ToTable("OrderInfo");
               //添加导航属性
            //
    this.HasOptional(x => x.User).WithMany(x => x.OrderInfo).HasForeignKey(x => x.Id); } }

    添加数据 会同时保存用户表和订单表

    User u=new User();
    
    u.Name="张三";
    
    OrderInfo orderInfo=new OrderInfo ();
    
    u.Orders.Add(new OrderInfo(){ OrderNo="1234123"})
    
    u.Orders.Add(new OrderInfo(){ OrderNo="12341221213"})
    
    db.User.Add(u);
    
    db.SaveChanges();
  • 相关阅读:
    链表的头指针
    顺时针打印矩阵
    旋转数组的最小数字
    实现string类
    最长对称子串
    DFS和BFS
    最长公共子序列
    排序算法
    大端与小端
    交换两个数
  • 原文地址:https://www.cnblogs.com/zhangmm96/p/11409310.html
Copyright © 2020-2023  润新知