zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    镜像---移除
    镜像--保存于载入
    镜像、docker、容器三者关系
    容器管理
    HBase数据读写流程(1.3.1)
    HBase表的memstore与集群memstore
    HBase预分区方法
    HBase中的TTL与MinVersion的关系
    关于HBase的memstoreFlushSize。
    hbase java api样例(版本1.3.1,新API)
  • 原文地址:https://www.cnblogs.com/zhangmm96/p/11409310.html
Copyright © 2011-2022 走看看