Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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# MariaDB无法使用实体框架5.0插入数据_C#_Sql_Entity Framework_Mariadb - Fatal编程技术网

C# MariaDB无法使用实体框架5.0插入数据

C# MariaDB无法使用实体框架5.0插入数据,c#,sql,entity-framework,mariadb,C#,Sql,Entity Framework,Mariadb,我在数据库中插入数据时遇到问题。 我用heideSQL创建了三个表,并用外键链接了这三个表。第一个表(多对一)第二个表(一对多)第三个表。当我现在尝试使用db.SaveChanges()插入新数据时它抛出一个insert异常,该异常告诉我他无法匹配外键,因为最终两个或多个对象具有相同的主键。但我在每个表中只有一个ID字段,它是自动递增的。我使用第二个表的ID字段链接第一个表和第三个表。 问题可能是每次为insert创建新的数据库对象时,我总是将属于第二个表的相同对象添加到db对象,即使它保持不变

我在数据库中插入数据时遇到问题。 我用heideSQL创建了三个表,并用外键链接了这三个表。第一个表(多对一)第二个表(一对多)第三个表。当我现在尝试使用
db.SaveChanges()插入新数据时它抛出一个insert异常,该异常告诉我他无法匹配外键,因为最终两个或多个对象具有相同的主键。但我在每个表中只有一个ID字段,它是自动递增的。我使用第二个表的ID字段链接第一个表和第三个表。
问题可能是每次为insert创建新的数据库对象时,我总是将属于第二个表的相同对象添加到db对象,即使它保持不变。与第一个表的对象相同。这可能是迷雾,我该如何解决?
附上数据库的代码和图片。我希望这有助于理解我的问题

干杯,只有3卢

 db.zeichnungs.Add(zeichnung);
                db.projekts.Add(projekt);
                db.tags.Add(tag);
            }
            try
            {
                db.SaveChanges();
            } ...

你能再加一些相关的代码吗?我发现了我的错误。在调用db.SaveChanges()之前,我只需添加projekt并仅标记这些项目。我在foreach中添加了zeichung,这样我就有了许多zeichung、一个项目和一个标签。就这么简单。但我现在遇到的另一个问题是,当我尝试插入具有相同projektnumber和相同标记的新zeichnung数据时(该数据已经存在于数据库中),我如何更新从zeichnung到其他两个表的连接?或者当我添加一个新的zeichnung时,它具有相同的projectnumber但有新的标记。我怎样才能建立所有这些新的连接?有什么想法吗?