Conbrio Group
Mitglied
Bei einem Data Edit Element wird eine Datenstruktur verwendet. Ein Datensatz soll dann via C# "public override DataActionResult<DataContainer> Update(DataActionRequest<DataContainer> request)" aktualisiert werden.
********
Soweit kommt es allerdings nicht, im Tracelog wird eine System.ArgumentException: key ausgelöst:
System.ArgumentException: key
bei Sagede.Shared.ControlCenter.SDataClient.ServiceAdapter.Update[T](SDataContract service, DataActionRequest`1 request, ApplicationContext context, Boolean withPartialPayload)
bei Sagede.Shared.ControlCenter.SDataClient.ClientCore.<>c__DisplayClass123_0.<UpdateRecord>b__0(SDataContract s)
bei Sagede.Shared.ControlCenter.SDataClient.ClientContext.<>c__DisplayClass24_0`1.<Execute>b__2(SDataContract service)
bei Sagede.Shared.ControlCenter.SDataClient.ServiceExecutionContext.<<ExecuteRequestAsync>b__9_0>d.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Sagede.Shared.ControlCenter.SDataClient.ServiceExecutionContext.<ExecuteRequestAsync>d__11.MoveNext()
=> ExecuteRequestAsync in ServiceExecutionContext.cs(line 155)
=> ExecuteRequestAsync in ServiceExecutionContext.cs
********
Dies obwohl der Schlüssel vordefiniert ist:
public override void PrepareMetadata(DataObjectBase rawMetadata)
{
DataStructure dataStructure = rawMetadata as DataStructure;
if ((dataStructure != null))
{
if (!string.IsNullOrEmpty(KeyField1))
{
DataFieldObjectBase field1 = dataStructure.Fields.TryGetItem(KeyField1);
if ((field1 != null))
{
dataStructure.PrimaryKeyField1 = KeyField1;
dataStructure.PrimaryKeyType1 = Enumerations.PrimaryKeyType.Variable;
}
}
}
}
*******
Was habe ich hier denn übersehen?
********
Soweit kommt es allerdings nicht, im Tracelog wird eine System.ArgumentException: key ausgelöst:
System.ArgumentException: key
bei Sagede.Shared.ControlCenter.SDataClient.ServiceAdapter.Update[T](SDataContract service, DataActionRequest`1 request, ApplicationContext context, Boolean withPartialPayload)
bei Sagede.Shared.ControlCenter.SDataClient.ClientCore.<>c__DisplayClass123_0.<UpdateRecord>b__0(SDataContract s)
bei Sagede.Shared.ControlCenter.SDataClient.ClientContext.<>c__DisplayClass24_0`1.<Execute>b__2(SDataContract service)
bei Sagede.Shared.ControlCenter.SDataClient.ServiceExecutionContext.<<ExecuteRequestAsync>b__9_0>d.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Sagede.Shared.ControlCenter.SDataClient.ServiceExecutionContext.<ExecuteRequestAsync>d__11.MoveNext()
=> ExecuteRequestAsync in ServiceExecutionContext.cs(line 155)
=> ExecuteRequestAsync in ServiceExecutionContext.cs
********
Dies obwohl der Schlüssel vordefiniert ist:
public override void PrepareMetadata(DataObjectBase rawMetadata)
{
DataStructure dataStructure = rawMetadata as DataStructure;
if ((dataStructure != null))
{
if (!string.IsNullOrEmpty(KeyField1))
{
DataFieldObjectBase field1 = dataStructure.Fields.TryGetItem(KeyField1);
if ((field1 != null))
{
dataStructure.PrimaryKeyField1 = KeyField1;
dataStructure.PrimaryKeyType1 = Enumerations.PrimaryKeyType.Variable;
}
}
}
}
*******
Was habe ich hier denn übersehen?