Ich habe eine einfache Test-Tabelle in einer EDMX-Datei erstellt. Die Tabelle heißt Test mit einer Spalte, TestId. TestId ist der Entitätsschlüssel und sein Typ ist Guid. StoreGeneratedPattern wird auf Identität (der Standardwert) festgelegt.Entity Framework und MySQL Null Referenz Ausnahmen beim Einfügen einer Zeile
Die generierte SQL sieht wie folgt aus:
using (var foo = new TestModelContainer())
{
var test = new Test() {
TestId = Guid.NewGuid()
};
foo.Tests.AddObject(test);
foo.SaveChanges();
}
Ich bin ein NULL-Verweis Ausnahme bekommen, wenn ich Savechanges:
CREATE TABLE `Tests` (
`TestId` CHAR(36) BINARY NOT NULL
);
ALTER TABLE `Tests`
ADD CONSTRAINT `PK_Tests`
PRIMARY KEY (`TestId`);
nun der Körper meines Code sieht wie folgt aus. Der Stack-Trace geht tief in die Eingeweide des MySQL Connector (Ich bin mit Version 6.3.5):
System.NullReferenceException was unhandled
Message=Object reference not set to an instance of an object.
Source=MySql.Data.Entity
StackTrace:
at MySql.Data.Entity.SqlGenerator.GenerateReturningSql(DbModificationCommandTree tree, DbExpression returning)
at MySql.Data.Entity.InsertGenerator.GenerateSQL(DbCommandTree tree)
at MySql.Data.MySqlClient.MySqlProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
at System.Data.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree)
at System.Data.Common.DbProviderServices.CreateCommand(DbCommandTree commandTree)
at System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand(DbModificationCommandTree commandTree)
at System.Data.Mapping.Update.Internal.DynamicUpdateCommand.CreateCommand(UpdateTranslator translator, Dictionary`2 identifierValues)
at System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator translator, EntityConnection connection, Dictionary`2 identifierValues, List`1 generatedValues)
at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
at System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
at System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
at System.Data.Objects.ObjectContext.SaveChanges()
at EFMySQL.Program.Main(String[] args) in C:\Users\david.pio\Documents\Visual Studio 2010\Projects\EFMySQL\EFMySQL\Program.cs:line 40
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
Irgendwelche Ideen?