Pav*_*ják 5 c# sql linq asp.net-mvc
您好,我正在尝试将以下 SQL 语句转换为其等效的 LINQ 语句,并且由于我对 .net 真的很陌生(编码了一天),因此我已经被困在这个问题上好几个小时了。
SELECT *
FROM Books
WHERE BookID IN (SELECT BookID
FROM Borrows
WHERE UserID = 2)
Run Code Online (Sandbox Code Playgroud)
这是模型
public class LibUser
{
[Key]
public int UserID { get; set; }
[Required, StringLength(50), Display(Name = "First Name")]
public string UserFirstName { get; set; }
[Required, StringLength(50), Display(Name = "Last Name")]
public string UserLastName { get; set; }
[Required, StringLength(10000), Display(Name = "Residence"), DataType(DataType.MultilineText)]
public string Adress { get; set; }
}
public class Book {
[Key]
public int BookID { get; set; }
public string Title { get; set; }
public string Author { get; set; }
public DateTime Published{ get; set; }
}
public class Borrowed {
[Key]
public int BorrowID { get; set; }
public int UserID { get; set; }
public int BookID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何人的帮助。
编辑
上下文类
public class LibraryContext : DbContext
{
public LibraryContext()
: base("libromatic")
{
}
public DbSet<LibUser> LibUsers { get; set; }
public DbSet<Book> Books { get; set; }
public DbSet<Borrowed> Borrows { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
var Lnq = new LinqDataContext();
var borrowId = Lnq.Borrowed.Where(a => a.UserID == 2).Select(a => a.BookID).ToList();
var bookQuery = Lnq.Books.Where(a => borrowId.Contains(a.BookID))
.Select(a => a.YourColumn);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1376 次 |
最近记录: |