【问题标题】:linq entityframework get result from joining tableslinq entityframework 从连接表中获取结果
【发布时间】:2013-07-30 18:18:47
【问题描述】:

我正在尝试编写一个 Linq,它返回连接 3 个表的结果

有“书”、“作者”实体。一本书可以有多位作者,一位作者可以写多本书

我想获得一个“BooksAuthors”对象,其中包含书名和写这本书的作者列表。我当前的 linq 是(但它什么也不返回,我得到 NullPointer 异常)

BooksAuthors = db.tblBooks.SelectMany(
                    book => book.Authors,
                    (book, author) => new Books
                    {
                        BookID = book.BookID,
                        BookName = book.BookName,
                        Authors = book.Authors
                    }),

其他类:

public class Author
{
    public virtual int AuthorID { get; set; }
    public virtual string AuthorName { get; set; }
    public virtual ICollection<Book> Books { get; set; }
}
public class Book
{
    public virtual int BookID { get; set; }
    public virtual string BookName { get; set; }
    public virtual ICollection<Author> Authors { get; set; }
}


public class Books
    {
        public int BookID { get; set; }
        public string BookName { get; set; }
        public IEnumerable<Author> Authors { get; set; }
    }
public class LibraryDb : DbContext
{        
    public DbSet<Book> tblBooks { get; set; }
}

【问题讨论】:

    标签: asp.net asp.net-mvc linq entity-framework


    【解决方案1】:

    这应该返回一个带有作者列表的 Books 类型的 IEnumerable。

    IEnumerable<Books> x =
                db.tblBooks.Select(t => new Books {BookID = t.BookID, Authors = t.Authors, BookName = t.BookName});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-30
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多