我有以下两个类:
作者类:
public class Author
{
public Author()
{
this.Books = new List<Book>();
}
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DOB { get; set; }
public virtual ICollection<Book> Books { get; set; }
}
和Book课程:
public class Book
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime DatePublished { get; set; }
public bool IsBorrowed { get; set; }
public bool IsOverdue { get; set; }
public int AuthorId { get; set; }
public virtual Author Author { get; set; }
}
作者可以有很多书。我遇到的问题是加载与作者相关的所有书籍。例如,我的数据库中有一个ID为1的作者,我想返回与该特定作者相关的所有书籍。
我的思维过程是最好的方法是使用LINQ,但是我很失落如何正确创建LINQ查询来执行此操作。能指导我完成上述任务的最佳方法吗?
答案 0 :(得分:1)
看这里https://msdn.microsoft.com/en-us/library/bb397906.aspx ..这是一个很好的网站开始。
如果您正在使用实体框架,我会推荐https://msdn.microsoft.com/en-us/library/bb399375(v=vs.110).aspx
首先需要实例化数据库上下文,之后可以使用linq访问指定的实体
var dbContext = new DataContext();
var query = from book in dbContext.Books
where book.AuthorId == 1
select book;
之后,您可以在foreach循环(或类似)中执行结果或执行方法
.First();
有例外或
.FirstOrDefault();
没有例外。
答案 1 :(得分:0)
您需要查询books表。类似的东西:
IQueryable<Book> books =
from book in db.Books
where book.AuthorId == 1
select book;