Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 无法基于Linq到SQL中的外键关系创建属性_Sql Server_Linq To Sql - Fatal编程技术网

Sql server 无法基于Linq到SQL中的外键关系创建属性

Sql server 无法基于Linq到SQL中的外键关系创建属性,sql-server,linq-to-sql,Sql Server,Linq To Sql,表名:Author AuthorID->主键 名字 姓氏 表名:标题 ISBN->主键 书名 编辑编号 版权所有 表名:bn ISBN->外键 AuthorID->外键 我可以做到: var AuthorsAndISBNs = from author in database.Author join books in database.AuthorISBN on author.AuthorID equals

表名:
Author

  • AuthorID->主键
  • 名字
  • 姓氏
表名:
标题

  • ISBN->主键
  • 书名
  • 编辑编号
  • 版权所有
表名:
bn

  • 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会根据外键关系自动创建属性,这使您能够轻松访问其他表中的相关行:(

作者与作者之间存在一对多关系,而作者与标题之间存在“多对一”关系


请帮助!这几天一直困扰着您:'(谢谢!

为了让LINQ允许您访问其他表中的相关行,每个表都必须有一个PrimaryID。问题是'AuthorizationBN'表没有PrimaryID,因此没有创建属性:)

您能发布域对象(标题、作者和AuthorizationBN)吗?你是手工编写这些类还是使用工具生成它们?重复的-你只是在5小时前问了同样的问题-请不要反复发布同样的问题!@Chasemedallion不,我不是手工编写类。我已经在mySQL中开发了表,并在c#中添加了与我的程序的连接,以及使用对象关系映射(omr)将它们拖放到名为Books.dbml的dbml文件中。此方法自动创建一个BookDataContext对象以连接到我的数据库。@marc#s好的,我不会再次发布它。我只是对此感到非常失望如果查询#1有效-为什么不使用相同的方法(使用
join
而不是两个独立的
from
子句)进行第二次查询?