C# 与SP的结果集具有相同的属性(名称和类型)。在对话框中,在“返回的集合”中选择“复杂”

C# 与SP的结果集具有相同的属性(名称和类型)。在对话框中,在“返回的集合”中选择“复杂”,c#,sql-server,linq,stored-procedures,C#,Sql Server,Linq,Stored Procedures,希望这有帮助。要使用linq调用存储过程,只需转到服务器资源管理器连接数据库,然后选择存储过程文件夹,并将其拖到dbml设计器文件中。您将注意到,设计器中添加了一个方法。 然后实例化上下文并调用您的过程。 例子: 要使用linq调用存储过程,只需转到服务器资源管理器连接数据库,然后选择存储过程文件夹,并将其拖到dbml设计器文件中即可。您将注意到,设计器中添加了一个方法。 然后实例化上下文并调用您的过程。 例子: 为什么不将其作为存储过程保留?因为我们已经为应用程序的所有其他功能设置了完整的li

希望这有帮助。

要使用linq调用存储过程,只需转到服务器资源管理器连接数据库,然后选择存储过程文件夹,并将其拖到dbml设计器文件中。您将注意到,设计器中添加了一个方法。 然后实例化上下文并调用您的过程。 例子:

要使用linq调用存储过程,只需转到服务器资源管理器连接数据库,然后选择存储过程文件夹,并将其拖到dbml设计器文件中即可。您将注意到,设计器中添加了一个方法。 然后实例化上下文并调用您的过程。 例子:

为什么不将其作为存储过程保留?因为我们已经为应用程序的所有其他功能设置了完整的linq服务,但不管怎样,我该如何调用存储过程?我的尝试也失败了。看一看,你实际上可以从
DBContext
调用你的过程。除了不必在linq中重写它之外,如果你将其保留为存储过程,那么你的存储过程会更快。为什么不将其保留为存储过程呢?因为我们已经为应用程序的所有其他功能设置了完整的linq服务,但是不管怎样,我如何调用存储过程呢?我的尝试也失败了。看一看,您实际上可以从
DBContext
调用您的过程,除了不必在linq中重写它之外,如果您将存储过程保留为目前为止运行的状态,您的存储过程将更快,只是要澄清一下,我的上下文又是什么?如果我将其设置为“Job”,spSearchResults会说它未定义。在Job中的var query=from j中,Job是您的ObjectContext(),它提供了使用EF和数据存储的机制。在使用上下文之前,您是否实例化了它?到目前为止,这是有效的,只是为了澄清一下,我的上下文又是什么?如果我将其设置为“Job”,spSearchResults会说它未定义。在Job中的var query=from j中,Job是您的ObjectContext(),它提供了使用EF和数据存储的机制。您是否在使用上下文之前实例化它?
var query = from j in Job
                    join JobHeading H1 in Job on headingRowID1 equals H1
                    join JobHeading H2 in Job on headingRowID2 equals H2
                    join JobHeading H3 in Job on headingRowID3 equals H3
                    join JobHeading H4 in Job on headingRowID4 equals H4
                    join JobUDAC udac1 in Job on udacRowID1 equals udac1
                    join JobUDAC udac2 in Job on udacRowID2 equals udac2
                    join JobUDAC udac3 in Job on udacRowID3 equals udac3
                    join JobUDAC udac4 in Job on udacRowID4 equals udac4
                    join PieceType in db on piece equals PieceType
                    join JobFileType in db on filetype equals JobFileType
                    join Book in db on market equals Book
                    join PieceNumber in db on pieceNumber equals PieceNumber
                    join JobNumber in db on jobNumber equals JobNumber
                    join Job in db on FindJobs equals db
                    where ((piece = string.Empty) || (PieceType = piece))
                      && ((filetype = string.Empty) || (JobFileType = filetype))
                      && ((market = string.Empty) || (Book = market))
                      && ((pieceNumber = string.Empty) || (PieceNumber = pieceNumber))
                      && ((jobNumber = string.Empty) || (JobNumber = jobNumber))
                      && (showInActive = true)
                      && ((((headingRowID1 = string.Empty) + (headingRowID2 = string.Empty) + (headingRowID3 = string.Empty) + (headingRowID4 = string.Empty)) ||
                            H1.HeadingRowID = headingRowID1)
                        || (H2.HeadingRowID = headingRowID2)
                        || (H3.HeadingRowID = headingRowID3)
                        || (H4.HeadingRowID = headingRowID4))
                      && ((((udacRowID1 = string.Empty) + (udacRowID2 = string.Empty) + (udacRowID3 = string.Empty) + (udacRowID4 = string.Empty)) ||
                            udac1.UDACRowID = udacRowID1)
                        || (udac2.UDACRowID = udacRowID2)
                        || (udac3.UDACRowID = udacRowID3)
                        || (udac4.UDACRowID = udacRowID4))
                    select j.Job;
        return query;
var result = context.spSearchResults(Your list of parameters...);