Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 二元分期表。使用75K扩展IN子句的限制。TVP会产生有利于少量数据的执行计划,这就是为什么我说他可以尝试morelinq库。我以前在更大的表中尝试过它,它的性能非常好。@PanagiotisKanavos令人惊讶的是,类似的查询(如果使用List而不是L_C#_Sql_Asp.net_Entity Framework_Linq - Fatal编程技术网

C# 二元分期表。使用75K扩展IN子句的限制。TVP会产生有利于少量数据的执行计划,这就是为什么我说他可以尝试morelinq库。我以前在更大的表中尝试过它,它的性能非常好。@PanagiotisKanavos令人惊讶的是,类似的查询(如果使用List而不是L

C# 二元分期表。使用75K扩展IN子句的限制。TVP会产生有利于少量数据的执行计划,这就是为什么我说他可以尝试morelinq库。我以前在更大的表中尝试过它,它的性能非常好。@PanagiotisKanavos令人惊讶的是,类似的查询(如果使用List而不是L,c#,sql,asp.net,entity-framework,linq,C#,Sql,Asp.net,Entity Framework,Linq,二元分期表。使用75K扩展IN子句的限制。TVP会产生有利于少量数据的执行计划,这就是为什么我说他可以尝试morelinq库。我以前在更大的表中尝试过它,它的性能非常好。@PanagiotisKanavos令人惊讶的是,类似的查询(如果使用List而不是List)至少在最新的EF版本中可以工作,并且将使用巨人UNION ALL子句(而不是in)生成内部联接。这是关于数据库查询的问题。如果两组ID都存在于同一个数据库中,那么就没有理由将ID拉到客户端,只是为了将它们发送回服务器。如果ID只存在于客


二元分期表。使用75K扩展IN子句的限制。TVP会产生有利于少量数据的执行计划,这就是为什么我说他可以尝试morelinq库。我以前在更大的表中尝试过它,它的性能非常好。@PanagiotisKanavos令人惊讶的是,类似的查询(如果使用
List
而不是
List
)至少在最新的EF版本中可以工作,并且将使用巨人UNION ALL子句(而不是in)生成内部联接。这是关于数据库查询的问题。如果两组ID都存在于同一个数据库中,那么就没有理由将ID拉到客户端,只是为了将它们发送回服务器。如果ID只存在于客户端(如带有ID的文件),LINQ无法通过魔法使客户端ID出现在服务器上。如果该查询能够工作,它将必须在()中创建一个巨大的
IN
子句或使用TVPs<在中,code>有一个限制,因此它可能不起作用。他说“两个表都在不同的服务器中”。在这种情况下,asnwer链接到不同的服务器。或临时暂存表。使用75K扩展IN子句的限制。TVP会产生有利于少量数据的执行计划,这就是为什么我说他可以尝试morelinq库。我以前在更大的表中尝试过它,它的性能非常好。@PanagiotisKanavos令人惊讶的是,类似的查询(如果使用
List
而不是
List
)至少在最新的EF版本中可以工作,并且将使用巨人UNION ALL子句(而不是in)生成内部联接.有没有确认OP正在使用SqlServer?@IvanStoev没有,我只是有这样的不满。但如果情况并非如此,我将要么更新OPs数据库的答案,要么将其删除(如果该数据库是我不知道如何做的话)。是否有任何证据表明OP正在使用SqlServer?@IvanStoev不是真的,我只是有过这样的不满。但如果情况并非如此,我将要么更新OPs数据库的答案,要么删除它,如果这将是一个数据库,我不知道如何做到这一点。
 foreach(var item in cotext1.Table1)
 {
   var Employee=Context2.table2.where(x=>x.EmpId==item.Id);
 }
    Server1Entities dc1 = new Server1Entities ();
    List<IDTable> ids = (from ro in dc1.IDTable select ro).ToList();

    Server2Entities dc2 = new Server2Entities();

    var list = (from firstTable in ids
                join secondTable in dc.YourSecondTable
                on firstTable.ID equals secondTable.ID
                select new {

                 field1 = firstTable.Field1,
                 field2 = secondTableField1 // You can define fieldnames as you want.
                }).ToList();
CREATE TYPE dbo.IntHashSet AS TABLE 
(
    ID int NOT NULL PRIMARY KEY 
)
using (var ctx = new TestDBEntities()) {
    // fill data table with your ids
    var dt = new DataTable();
    dt.Columns.Add("ID", typeof(int));                    
    for (int i = 0; i < 75000; i++) {
       dt.Rows.Add(i);
    }
    // make a query
    var result = ctx.Database.SqlQuery<BigTable>("select BT.* from BigTable BT inner join @IDS I on BT.CodeID = I.ID",
        new SqlParameter("IDS", SqlDbType.Structured)
        {                        
            // name of type you created in step 1
            TypeName = "dbo.IntHashSet",
            Value = dt
        }).ToArray();
}