读书人

关于LINQ内连接一个有关问题

发布时间: 2012-02-29 16:44:11 作者: rapoo

关于LINQ内连接一个问题?
今天下午搞了半天没有搞出来,麻烦看下问题在哪里!现在有2张表要内连接,公司company,联络人customer,company有一个字段com_xscode,customer有一个字段c_xscode,把两张表联系起来,如com_xscode:G0000-C0001,c_xscode:G0000-C00001-P0001,G0000-C00001-P0002
show_companyDataContext db_company = new show_companyDataContext(); //公司表
show_customerDataContext db_customer = new show_customerDataContext(); //客户表
//1、调试出错,编译没问题,我点击获取SQL语句发生异常,所以下面这句写法有问题,我目的是要获得来两张连接后所有的字段?
var customer_company = from p in db_company.t_company
orderby p.com_date descending
join c in db_customer.t_customer
on p.com_xscode equals c.c_xscode.Substring(0, 11)
into pc
from x in pc.DefaultIfEmpty()
select new { p.com_en_name, p.com_name,x.c_en_name,x.c_name };

string com_en_name = string.Empty;
foreach (var name in customer_company) //2、调试出错,提示查询包含对不同数据上下文上所定义项的引用?
{
com_en_name += name.com_en_name;
}



[解决办法]

C# code
//亲,从你的代码来看,是左连接,不是内连接啊var customer_company = from p in db_company.t_company   join c in db_customer.t_customer  on p.com_xscode equals c.c_xscode.Substring(0, 11)  into pc   from x in pc.DefaultIfEmpty()  orderby p.com_date descending  select new {     com_en_name=p.com_en_name,     com_name=p.com_name,    c_en_name=x==null?"":x.c_en_name,    c_name=x==null?"":x.c_name   };  string com_en_name = string.Empty;  foreach (var name in customer_company.DefaultIfEmpty())    {  com_en_name += name.com_en_name;  } 

读书人网 >.NET

热点推荐