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

本文关键字:定义 引用 上下文 数据 包含 查询 | 更新日期: 2023-09-27 17:48:56

我在Stackoverflow上读了另外几个帖子,但我的问题很简单和不同。我有2个独立的数据库,这就是为什么我有两个单独的数据上下文。这是我的查询,我传递参数,并将其绑定到我的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一样容易得到解决方案。