Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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# 使用实体框架6在一个连接中获取依赖数据的linq查询_C#_Sql Server_Linq_Entity Framework_Entity Framework 6 - Fatal编程技术网

C# 使用实体框架6在一个连接中获取依赖数据的linq查询

C# 使用实体框架6在一个连接中获取依赖数据的linq查询,c#,sql-server,linq,entity-framework,entity-framework-6,C#,Sql Server,Linq,Entity Framework,Entity Framework 6,我有以下SQL语句: DECLARE @UserID INT SELECT Col1, Col2, Col3, @UserID = UserID FROM Users WHERE UserName = <username> AND Password = <password> SELECT Col1, Col2, Col3 FROM ClientUser WHERE UserID = @UserID DECLARE@UserID INT 选择Col1、Col2

我有以下SQL语句:

DECLARE @UserID INT

SELECT Col1, Col2, Col3, @UserID = UserID 
FROM Users 
WHERE UserName = <username> AND Password = <password>

SELECT Col1, Col2, Col3 
FROM ClientUser 
WHERE UserID = @UserID
DECLARE@UserID INT
选择Col1、Col2、Col3、@UserID=UserID
来自用户
其中UserName=和Password=
选择Col1、Col2、Col3
来自ClientUser
其中UserID=@UserID

在上述查询中有两个select语句,一个用于获取
UserID
,另一个用于从
Users
表获取其他列信息,另一个用于基于
@UserID
值从另一个表获取信息。如何在
实体框架
上下文上编写
linq
查询,以便在不多次连接数据库的情况下执行此选择?

假设您有两个类,User和ClientUser,它们是实体框架模型的一部分。它们可能看起来像这样

public class User
{
    public int UserId { get; set; }
    public string Col1 { get; set; }
    //More to be here

    public virtual ICollection<ClientUser> Clients { get; set; }
}

public class ClientUser
{
    public int ClientId { get; set; }
    public int UserId { get; set; }

    public virtual User User {get; set;}
}

然后将所需内容添加到查询中。通过使用“include”,它确保EF急切地而不是懒散地提取数据。

您可以使用linq join根据用户ID连接两个表,然后获取数据。这样,它将只使用一次db命中
var query = YourContext.Users.Get().Include(x => x.Clients);