Я полагаю, что проблема упрощается, если принять во внимание, что вам не нужно использовать ключ сущности Properties
.
Я сделал следующее, основываясь на ваших примерах. Обратите внимание, что я не C#
эксперт, как вы увидите, но это помогло:
string projectId = "MY-PROJECT";
string kind = "Task";
string name = "samplekey1";
DatastoreDb db = DatastoreDb.Create(projectId);
KeyFactory keyFactory = db.CreateKeyFactory(kind);
Key key = keyFactory.CreateKey(name);
var request = JObject.Parse("{number:1000, str:'string', array: [1,2,3,4,5,6]}");
var entity = new Entity()
{
Key = key,
};
foreach(JProperty property in request.Properties())
{
entity[property.Name] = property.Value.ToString();
}
using (DatastoreTransaction transaction = db.BeginTransaction())
{
transaction.Insert(entity);
transaction.Commit();
};
Обратите внимание, что при этом не будет сохранен тип значений для каждого ключа (все они будут Strings). Это не проблема, если вам не нужен тип (то есть Int, String ...) для каждого значения, которое будет использоваться позже.
Однако это, кажется, самое простое решение, и оно выполняет всю работу по созданию каждого свойства с каждым значением .