内联:没有into
左联:有into
例子:
from GoodsStore in this.GetCurrentDbSession.Tbl_OfficeSupplies_GoodsStoreDLL.LoadEntities(a => (Guid.Empty==GoodsID?true:a.GoodsID==GoodsID))
 join goods in GetCurrentDbSession.Tbl_OfficeSupplies_GoodsDLL.LoadEntities(a => (Guid.Empty == GoodsCategoryID ? true : a.GoodsCategoryID == GoodsCategoryID) && (Guid.Empty == GoodsID ? true : a.ID == GoodsID))
 on GoodsStore.GoodsID equals goods.ID
 join goodscategory in this.GetCurrentDbSession.Tbl_OfficeSupplies_GoodsCategoryDLL.LoadEntities(a => (Guid.Empty == GoodsCategoryID ? true : a.ID == GoodsCategoryID))
 on goods.GoodsCategoryID equals goodscategory.ID
 join goodsSpecifications in GetCurrentDbSession.Tbl_OfficeSupplies_GoodsSpecificationDLL.LoadEntities(a => true)
 on GoodsStore.GoodsSpecificationID equals goodsSpecifications.ID
 join goodsUnit in GetCurrentDbSession.Tbl_OfficeSupplies_GoodsUnitDLL.LoadEntities(a => true)
 on goods.UnitID equals goodsUnit.ID into tmp1
 from tt in tmp1.DefaultIfEmpty()
 select new
 {
 GoodsID = goods.ID == null ? Guid.Empty : tt.ID,
 GoodsName = goods.Name,
 GoodsCategoryName = goodscategory.Name,
 GoodsSpecificationID = goodsSpecifications.ID == null ? Guid.Empty : goodsSpecifications.ID,
 GoodsSpecificationName = goodsSpecifications.Name,
 GoodsUnitName = tt.Name,
 Count= GoodsStore.Count,
 ProcurementCount=GoodsStore.ProcurementCount,
 ApplyCount= GoodsStore.ApplyCount
 };