| Bug #45077 | Insert problem with Connector/NET 6.0.3 and entity framework | ||
|---|---|---|---|
| Submitted: | 25 May 2009 19:08 | Modified: | 10 Aug 2009 16:21 |
| Reporter: | Guido Müller | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | Connector / NET | Severity: | S1 (Critical) |
| Version: | 6.0.3 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[25 May 2009 19:11]
Guido Müller
A second is needed to reproduce the failure. A model must be created using e.g. by using the Visual Studio tool.
[10 Aug 2009 15:37]
Reggie Burnett
fixed in 6.0.5 and 6.1.1
[10 Aug 2009 16:21]
Tony Bedford
An entry was added to the 6.0.5 and 6.1.1 changelogs: Insert into two tables failed when using the Entity Framework. The exception generated was: The value given is not an instance of type 'Edm.Int32'
[11 Aug 2009 6:25]
Tonci Grgin
Bug#45175 was marked as duplicate of this report.

Description: Insert into two tables fails with an exception The value given is not an instance of type 'Edm.Int32' How to repeat: Create two tables: CREATE TABLE `tab1` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(45) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; CREATE TABLE `tab2` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `tab1id` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `FK_tab2_1` (`tab1id`), CONSTRAINT `FK_tab2_1` FOREIGN KEY (`id`) REFERENCES `tab1` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8; Run this code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MySQLTest { class Program { static void Main(string[] args) { using (db1Entities ctx = new db1Entities()) { var tab1Row = new tab1(); tab1Row.name = "test"; ctx.AddTotab1(tab1Row); ctx.SaveChanges(); Console.WriteLine("New row inserted into tab1 with id " + tab1Row.id); var tab2Row = new tab2(); tab2Row.tab1 = tab1Row; ctx.AddTotab2(tab2Row); ctx.SaveChanges(); Console.WriteLine("New row inserted into tab2 with id " + tab2Row.id); } using (db1Entities ctx = new db1Entities()) { var tab2Row = new tab2(); var tab1Row = ctx.tab1.First(); tab2Row.tab1 = tab1Row; ctx.AddTotab2(tab2Row); ctx.SaveChanges(); Console.WriteLine("New row inserted into tab2 with id " + tab2Row.id); } } } } Suggested fix: N/A