简体   繁体   English

如何 select 特定列和连接表与实体框架?

[英]How to select specific columns and join tables with Entity Framework?

I need to get data from SQL Server to my data grid view in Winforms我需要从 SQL 服务器获取数据到我在 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

How can I convert the query above to a code for Entity Framework?如何将上面的查询转换为实体框架的代码?

Use linq使用 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

As far as I can see Management table has one to many with User and Book tables.据我所见,管理表与用户表和图书表是一对多的。

If that is the case you can add, properties to the Management model in code and include these tables when you pull data from SQL Management table.如果是这种情况,您可以将属性添加到代码中的管理 model 中,并在您从 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;}
} 

This should be your Management class.这应该是您的管理 class。 For the query in Entity Framework try something like this:对于实体框架中的查询,请尝试以下操作:

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

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

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