0

表名:Author

  • AuthorID -> 主键

表名:Titles

  • ISBN -> 主键
  • 书名
  • 版号
  • 版权

表名:AuthorISBN

  • ISBN -> 外键
  • AuthorID -> 外键

我可以:

var AuthorsAndISBNs =
            from author in database.Author
            join books in database.AuthorISBN
                on author.AuthorID equals books.AuthorID
            orderby author.LastName, author.FirstName
            select new { author.FirstName, author.LastName, books.ISBN };

但是,我不能这样做:

var authorsAndTitles =
           from title in database.Titles
           from book in title.AuthorISBN
           let author = book.Author
           orderby author.LastName, author.FirstName, title.BookTitle
           select new { author.FirstName, author.LastName, title.BookTitle };

我认为 LINQ 会根据外键关系自动创建属性,这使您可以轻松访问其他表中的相关行:(

作者与 AuthorISBN 具有一对多关系,与 Titles 具有“多对一”关系

请帮忙!被困在这几天:'(谢谢!

4

1 回答 1

1

为了让 LINQ 让您访问其他表中的相关行,每个表都必须有一个 PrimaryID。问题是“AuthorISBN”表没有primaryID,因此没有创建任何属性:)

于 2012-09-20T20:25:17.780 回答