要实现linq to sql多表查询也可以用select * from A,B Where A.ID=B.ID做到,但这些功能到了linq to sql中如何实现呢?本文就将对此做简单介绍。
本文笔者解说linq to sql多表查询,其间首要介绍的便是linq to sql多表查询的要害点。
在手写sql的时代,假如想从sqlserver数据库随机取几条数据,能够使用order by NewId()轻松完成,要完成linq to sql多表查询也能够用select * from A,B Where A.ID=B.ID做到,但这些功用到了linq to sql中怎么完成呢?
linq to sql多表查询要害点:
1.随机排序问题:能够用 Select(d=> new {NewId=new Guid()}).OrderBy(d=>d.NewId)到达order by NewId()的作用
2.linq to sql多表查询
- fromainTableA
- frombinTableB
- wherea.ID==b.ID
别的使用linq to xml还能够容易将查询出来的成果保存成xml(这一点比传统xml的办法的确要新颖许多)
具体代码可参阅我在一个项目中的示例(功用为随机取机10条产品视频的记载,并生成xml供播放器调用)
- using(DBDataContextdb=newDBDataContext(Database.ConnectionString))
- ...{
- varq=db.T_Shops.Where(s=>s.F_ID==
- newGuid("00000000-0000-0000-0000-000000000001")).Select(s=>
- new...{s.F_AutoID}).First();
- string_ShopAutoId=q.F_AutoID.ToString();
- varquery=(fromvindb.V_ProductVideos
- frompvindb.V_ProductTV
- wherev.F_ShopID==newGuid("00000000-0000-0000-0000-000000000001")&&
- v.F_ProductID==pv.F_ID&&
- pv.F_Status==1&&
- pv.F_isShow==1&&
- v.F_Status==1&&
- v.F_isShow==1&&
- v.F_ProductStatus==1
- selectnew
- ...{
- v.F_VideoS,
- v.F_VideoP,
- v.F_VideoW,
- v.F_VideoL,
- v.F_ClsAutoID,
- v.F_ProductName,
- v.F_ProductAutoID,
- NewId=Utils.NewComb()
- }
- ).OrderBy(p=>p.NewId).Take(10);
- //使用linqtoxml生成xml
- XDocumentdoc=newXDocument(
- newXElement("flvLists",fromdinquery
- select(
- newXElement(
- "item",
- newXAttribute("title_p",d.F_VideoP),
- newXAttribute("title_s",d.F_VideoS),
- newXAttribute("name",Utils.NoHtml(d.F_ProductName,500)),
- newXAttribute("link",
- +d.F_ClsAutoID.ToString()+
- "/"+_ShopAutoId+"/"+d.F_ProductAutoID)
- ))));
- doc.Save(Server.MapPath("~/upload/xml/tvvideo.xml"));
- db.Connection.Close();
- }
以上便是对linq to sql多表查询的具体介绍。
【修改引荐】
- 浅显易懂 LINQ表达式
- LINQ根底学习之LINQ to XML
- 学习心得LINQ to XML
- 浅析LINQ开发技能之LINQ to XML
- 具体论述linq动态排序
转载请说明出处
知优网 » linq to sql多表查询浅析(linq语句的多表查询)
知优网 » linq to sql多表查询浅析(linq语句的多表查询)