如何使用一个db往返执行两个EF linq查询

时间:2017-12-08 10:44:43

标签: c# entity-framework linq

当我们使用ado.net时,我们可以传递多个用逗号分隔的sql。这是一个例子。

SqlConnection connection = new SqlConnection();
SqlCommand command = new SqlCommand();
connection.ConnectionString = connectionString; // put your connection string
command.CommandText = @"
     update table
     set somecol = somevalue;
     insert into someTable values(1,'test');";
command.CommandType = CommandType.Text;
command.Connection = connection;

try
{
    connection.Open();
}
finally
{
    command.Dispose();
    connection.Dispose();
}

我想知道如何构建基于EF linq的查询,该查询将从多个表中获取数据,但两个表之间没有关系。所以我们不能进行加入。

所以请给我举个例子,其中EF将从学生和产品表中获取数据,而没有任何一次db往返的连接。是否有可能由ado.net按照上面的例子进行。

 var query = from data in context.Student
                orderby data.name
                select data;


 var query = from data in context.Product
                orderby data.name
                select data;

当两个上面的查询运行时,将发生两次数据库往返或一次?

我需要从两个名为student和product的表中获取数据,其中一个db往返就像我上面的EF linq查询一样。

如果可能,请与示例代码讨论。感谢

1 个答案:

答案 0 :(得分:2)

这不支持开箱即用,但是存在一个“future queries”包,可以启用此功能:https://www.nuget.org/packages/Z.EntityFramework.Plus.QueryFuture.EF6/