查询包含对在不同数据上下文中定义的项目的引用

问题描述:

我阅读了*中的其他帖子,但我的问题很简单而且不同。我有2个独立的数据库,这就是为什么我有两个单独的Datacontext。这里是我的查询中,我传递的参数并绑定到我的GridView:查询包含对在不同数据上下文中定义的项目的引用

if (Session["EntitySelected"] == null) 
{ 
    MessageBox.Show("Please Select an Entity first!"); 
    Response.Redirect("~/FrontEnd/List.aspx"); 
} 
int getEntity = Int16.Parse(Session["EntitySelected"].ToString()); 
this.Label3.Text = "You Selected Entity: " + (string)Session["EntitySelected"]; 

dbWebEnrollDataContext dt1 = new dbWebEnrollDataContext(); 
CommissionsV2DataContext cv1 = new CommissionsV2DataContext(); 
var td = from s in cv1.Entity_Product_Points 
     join r in dt1.PlanMasters on s.Product_ID equals r.Product_ID 
     where s.Entity_ID == getEntity 
     select new 
     { 
      s.Product_ID, 
      r.PlanName, 
      s.HiCommission, 
      s.HiCommissionOld, 
      s.LowCommission, 
      s.LowCommissionOld 
     }; 
gvShowComm.DataSource = td; 
gvShowComm.DataBind(); 

正如预期的那样被扔我这个错误。但是我在向1个数据库的表中添加记录时做了同样的事情。它插入行,但也抛出相同的错误。什么看看?谢谢!

我不相信你应该在两个数据上下文中进行连接。从你的LINQ查询的角度来看,你甚至不用你的连接查询中的r来产生任何有意义的东西;它看起来像你可以查询cv1,让你的数据:

var td = cv1.Entity_Product_Points.Where(x => x.Entity_ID == getEntity); 
// Call ToList to fully enumerate the set. 

编辑:仰望的解决方案,它看起来像它可能只是作为标记每个数据上下文查询AsQueryable已得到solution一样简单。

+0

一个DataContext可以从两个不同的数据库中保存两个不同的表吗? – 2011-04-06 20:51:08

+0

请参阅我的编辑。我做了一个改变,显示了我正在使用'r' – 2011-04-06 20:51:55