Bug #44455 | insert and update error with entity framework | ||
---|---|---|---|
Submitted: | 24 Apr 2009 12:50 | Modified: | 11 Aug 2009 10:30 |
Reporter: | Gert Brigsted | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | Connector / NET | Severity: | S1 (Critical) |
Version: | 6.0.4 | OS: | Windows (XP Pro) |
Assigned to: | Vladislav Vaintroub | CPU Architecture: | Any |
Tags: | decimal, entity framework |
[24 Apr 2009 12:50]
Gert Brigsted
[24 Apr 2009 15:24]
Tonci Grgin
Hi Gert and thanks for your report. I was about to test it but I hit Bug#44460... Will see how to test this next week.
[7 May 2009 11:07]
Tonci Grgin
Hi Gert. I would like you to attach small but complete test case demonstrating this behavior. In the meantime, I'll look for localized version of Windows with comma as decimal separator.
[29 May 2009 17:19]
Gert Brigsted
Hi again. I was just wondering if you can see the example project I submitted? I set it to only be visible to developers, although I can't remember why... :)
[20 Jun 2009 9:56]
Tonci Grgin
Yes Gert, I see it :-). So far I simply had no time to check on your report. Will do after vacation.
[23 Jul 2009 7:51]
Tonci Grgin
True, verified as described using test case attached. I changed my locale to use decimal comma, modified AssemblyInfo.cs, [assembly: AssemblyCulture("")] to "sl" and "de" (both using decimal comma) and added MySQL assemblies to Web.config: <add assembly="MySql.Data.Entity, Version=6.0.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> (instead of System.Data.EntityClient) <add assembly="MySql.Data, Version=6.0.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> but to no avail... Server Error in '/' Application. Column count doesn't match value count at row 1 Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: MySql.Data.MySqlClient.MySqlException: Column count doesn't match value count at row 1 Source Error: Line 20: { Line 21: Product product = Product.CreateProduct(0, "False teeth", 13.37); Line 22: database.AddToProducts(product); Line 23: database.SaveChanges(); // This line fails. Line 24: } Source File: F:\PublicShare\temp\Bug44455\MysqlBug\MysqlBug.Test\Default.aspx.cs Line: 22 Stack Trace: [MySqlException (0x80004005): Column count doesn't match value count at row 1] MySql.Data.MySqlClient.MySqlStream.ReadPacket() +216 MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64& lastInsertId) +60 MySql.Data.MySqlClient.MySqlDataReader.GetResultSet() +49 MySql.Data.MySqlClient.MySqlDataReader.NextResult() +722 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) +936 MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +4 System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) +10 System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator translator, EntityConnection connection, Dictionary`2 identifierValues, List`1 generatedValues) +209 System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter) +281 This differs from Bug#43574 in that DOUBLE and not decimal is used. As I can not access the patch right now I guess only decimal was handled in it.
[10 Aug 2009 17:38]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/80462 744 Reggie Burnett 2009-08-10 - fixed formatting of single, double, and decimal values when used with entity framework in cultures that use the comma as a decimal separator (bug #44455)
[10 Aug 2009 17:39]
Reggie Burnett
fixed in 6.0.5 and 6.1.1
[11 Aug 2009 10:30]
Tony Bedford
An entry was added to the 6.0.5 and 6.1.1 changelog: Errors occurred when using the Entity Framework with cultures that used a comma as the decimal separator. This was because the formatting for SINGLE, DOUBLE and DECIMAL values was not handled correctly.