[英]Linq query - conditional dependent columns from one table in .Net MVC Core 3.1, Entity Framework
[英]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.