EF关联查询linq--lamda

复习:关系数据库的意义就是多表关联

一对一、一对多、多对多的关系

一、Linq内连接

内连接与sql中的inner join 一样,即找出两个序列表的交集

语法:from 别名1 in  dbcontext.表1 

join    别名2 in db.context .表2 on  别名1.sid equals 别名2.sid

where 设置条件 select new  返回类模型{


                        
                           ID = B.ID,
                           Name=p.Name,
                            ProName = B.ProName,
                           ProAddress = B.ProAddress,
                           Input = B.Input,
                           Date = (DateTime)B.Date,
                             Charge = B.Charge,
                           Unit = B.Unit,
                          Amount = (decimal)B.Amount,
                            Contacts = B.Contacts,
                          Tel = B.Tel
                       }).ToList();

select new  模型类 对应着数据库的字段,根据别名点出来

equals 关键字把两个表关联起来

二、lamda

1.Join():

两表不必含有外键关系,需要代码手动指定连接外键相等(具有可拓展性,除了值相等,还能指定是>,<以及其他对两表的相应键的关系),以及结果字段。

   //lamda方式
            var query = _Testdb.Bidding.Join(_Testdb.ProjectType, m1 => m1.ProTypeID, m2 => m2.ID, (x1, x2) => new ResultData { 
           Biddings=x1,
           ProTypeName=x2.Name
           
            }).ToList();

lamda表达式方式,使用join关键字把两个表的外键字段关联起来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值