如何使用实体框架选择特定列和联接表



我需要将数据从SQL Server获取到Winforms 中的数据网格视图

SELECT 
Managements.OrderID, Managements.BookReturnDate, Managements.Money,
Books.bookName
FROM
Managements
INNER JOIN 
Users ON Users.UserID = Managements.Username_UserID
INNER JOIN  
Books ON Books.bookID = Managements.Book_bookID

如何将上面的查询转换为实体框架的代码?

使用linq

var s = from management in dbContext.Managements
join user in dbContext.Users on users.UserId equals management.Username_UserID
join book in dbContext.Books on book.BookId equals management.Book_bookID
select management.OrderID, management.BookReturnDate, management.Money,
book.bookName

据我所见,管理表有一对多的User和Book表。

如果是这种情况,您可以在代码中将属性添加到管理模型中,并在从SQL管理表中提取数据时包括这些表。

public class Management{
public int ManagmentId { get; set; }
public int UserId { get; set;}
public List<User> Users { get; set;}
public int BookId { get; set;}
public List<Book> Books { get; set;}
} 

这应该是你的管理课。对于实体框架中的查询,请尝试以下操作:

public Managment GetData(int managmentId){
var data = context.Management
.Include(u => u.Users)
.Include(b => b.Books)
.FirstOrDefault(m => m.Id == managmentId); 
}

最新更新