Ich habe eine einfache Testtabelle in einer EDMX-Datei erstellt. Die Tabelle heißt Test und hat eine Spalte, TestId. TestId ist der Entitätsschlüssel, und sein Typ ist Guid. StoreGeneratedPattern ist auf Identity (die Standardeinstellung) festgelegt.
Das generierte SQL sieht wie folgt aus:
CREATE TABLE `Tests` (
`TestId` CHAR(36) BINARY NOT NULL
);
ALTER TABLE `Tests`
ADD CONSTRAINT `PK_Tests`
PRIMARY KEY (`TestId` );
Der Hauptteil meines Codes sieht nun wie folgt aus:
using (var foo = new TestModelContainer())
{
var test = new Test() {
TestId = Guid.NewGuid()
};
foo.Tests.AddObject(test);
foo.SaveChanges();
}
Ich erhalte eine Null-Referenz-Ausnahme, wenn ich SaveChanges. Der Stack Trace geht tief in die Eingeweide des MySql Connectors (ich verwende 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?