Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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
C# 如何处理多对多关系并直接访问中间表?_C#_Entity Framework 4 - Fatal编程技术网

C# 如何处理多对多关系并直接访问中间表?

C# 如何处理多对多关系并直接访问中间表?,c#,entity-framework-4,C#,Entity Framework 4,我有3个表和多对多关系-比如,作者、书籍和书籍作者 当我从数据库更新实体框架edmx文件更新并选择所有3个表时,实际上我将在EF中得到2个表,而不是3个表。书籍作者将被隐藏。这对我来说是个问题,因为我有的是BooSyID和AuthoIdID列表。在这种情况下,我想直接将这些值保存在中间类。 当我尝试作弊时,我更新到EF first Books and Authors,在第二次更新BookAuthors或反之亦然,我将在edmx中获得3个表,但在编译时也会出现错误: 从第…行开始映射片段时出现问题

我有3个表和多对多关系-比如,作者、书籍和书籍作者

当我从数据库更新实体框架edmx文件更新并选择所有3个表时,实际上我将在EF中得到2个表,而不是3个表。书籍作者将被隐藏。这对我来说是个问题,因为我有的是BooSyID和AuthoIdID列表。在这种情况下,我想直接将这些值保存在中间类。

当我尝试作弊时,我更新到EF first Books and Authors,在第二次更新BookAuthors或反之亦然,我将在edmx中获得3个表,但在编译时也会出现错误:

从第…行开始映射片段时出现问题。。。。两个实体 可能不同的键映射到同一行。确保这两个 映射片段将AssociationSet的两端映射到 对应的列


那么,如何建立多对多关系,同时直接访问中间表呢?

我不太明白为什么需要直接访问中间表。但只要在表中添加一个永远不会被使用的伪布尔字段,EF就会停止自动隐藏它。

我不太明白为什么需要直接访问中间表。但只要向表中添加一个永远不会使用的伪布尔字段,EF就会停止自动隐藏它。

据我所知,如果使用数据库优先方法而不修改中间表,这是不可能的。如果选择应用模型优先方法,只需在模型中创建中间实体并使用一对多关系,而不是添加多对多关系

如果将数据库和另一列更改为中间表,使中间表不仅包含外键,还可以正常工作


我还想知道为什么您需要作为一个实体访问中间表。

据我所知,如果您使用数据库优先方法而不修改中间表,这是不可能的。如果选择应用模型优先方法,只需在模型中创建中间实体并使用一对多关系,而不是添加多对多关系

如果将数据库和另一列更改为中间表,使中间表不仅包含外键,还可以正常工作


我还想知道为什么您需要将中间表作为一个实体来访问。

似乎您正在尝试做的事情以及遇到的问题是获取现有图书的图书id,以及要添加到图书中的作者的作者id列表


在本例中,只需从authors表中提取所有作者,然后从books表中提取图书,对于每个作者,执行book.authors.Addauthor

看来您正试图做的事情以及遇到的问题是获取现有图书的图书id,以及您希望添加到图书中的作者的作者id列表


在本例中,只需从authors表中提取所有作者,然后从books表中提取图书,对于每个作者,执行book.authors.Addauthor

只要拉…,那些拉不是免费的。通过直接访问中间表,并且能够直接存储id,我不需要拉任何东西,只需要推送存储。这就是为什么我想访问它。只要拉…,这些拉不是免费的。通过直接访问中间表,并且能够直接存储id,我不需要拉任何东西,只需要推送存储。这就是为什么我想访问它。你到底是如何作弊的?您是否分别创建这三个表,并在图书和图书作者以及作者和图书作者之间添加多对一关系?你能更详细地描述一下这个过程吗?@Jim,这些表已经在数据库中了。我通过不在一个步骤中更新模型而在两个步骤中进行欺骗-第一个更新我为更新表Books和Authors选择,然后我从数据库执行第二个更新,在这一步我选择BookAuthors表。你们到底是如何欺骗的?您是否分别创建这三个表,并在图书和图书作者以及作者和图书作者之间添加多对一关系?你能更详细地描述一下这个过程吗?@Jim,这些表已经在数据库中了。我不在一个步骤中更新模型,而是在两个步骤中进行欺骗-第一步更新时,我选择更新表Books和Authors,然后从数据库执行第二次更新,在这一步中,我选择BookAuthors表。这很简单-有时我所知道的只是一堆作者和书籍的id,仅此而已。所以我想更新一些书籍的作者,而不需要额外访问数据库,关键是直接使用中间表。毕竟,它掌握着这两张桌子之间的关系——书、书和作者。假设你发现了,第五本书实际上有两位作者2和3。如何在不访问中间表的情况下更新数据?这很简单-有时我只知道一堆Au的id 雷神和书,仅此而已。所以我想更新一些书籍的作者,而不需要额外访问数据库,关键是直接使用中间表。毕竟,它掌握着这两张桌子之间的关系——书、书和作者。假设你发现了,第五本书实际上有两位作者2和3。如何在不访问中间表的情况下更新数据?