繁体   English   中英

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

[英]linq query to get dependent data in one connection using 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

以上查询中有两条select语句,一个是从@UserID表中获取UserID ,另一个是从Users表中获取列信息,第二个是基于@UserID值从另一个表中获取信息。 如何在entity framework上下文上编写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;}
}

默认情况下,您将使用延迟加载,因为我已将它们定义为虚拟机。 如果您知道需要更多,只需执行以下操作

var query = YourContext.Users.Get().Include(x => x.Clients);

然后将所需内容添加到查询中。 通过使用“包含”,可以确保EF主动而不是懒惰地提取数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM