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();

 

转载于:https://www.cnblogs.com/zhangmm96/p/11409310.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值