Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework core 实体框架核心Cosmos DB system.object映射_Entity Framework Core_Azure Cosmosdb - Fatal编程技术网

Entity framework core 实体框架核心Cosmos DB system.object映射

Entity framework core 实体框架核心Cosmos DB system.object映射,entity-framework-core,azure-cosmosdb,Entity Framework Core,Azure Cosmosdb,我有一个具有以下属性的实体 公共字符串id{get;set;} 公共对象有效负载{get;set;} 这用于在给定实体上保存不同类型的对象。因此,实体可以在属性上具有PayloadA类型和PayloadB类型(无基类) 我想把这个保存到宇宙数据库。 当我使用CosmosClient而不是EF时,我会得到以下文档结构(请注意,负载是按原样序列化的,您可以查询其属性: { "id": "3ead3cbd-88de-4f0c-a0b8-05f77465c247&q

我有一个具有以下属性的实体

公共字符串id{get;set;} 公共对象有效负载{get;set;}

这用于在给定实体上保存不同类型的对象。因此,实体可以在属性上具有PayloadA类型和PayloadB类型(无基类)

我想把这个保存到宇宙数据库。 当我使用CosmosClient而不是EF时,我会得到以下文档结构(请注意,负载是按原样序列化的,您可以查询其属性:

{
    "id": "3ead3cbd-88de-4f0c-a0b8-05f77465c247",
    "Payload": {
        "Property1": "0cd89dd5-0eee-4351-8e91-5e72432b0fe2"
    },
    "_rid": "5NIOAJz8J98rLQAAAAAAAA==",
    "_self": "dbs/5NIOAA==/colls/5NIOAJz8J98=/docs/5NIOAJz8J98rLQAAAAAAAA==/",
    "_etag": "\"9101c348-0000-0d00-0000-5f48f3ae0000\"",
    "_attachments": "attachments/",
    "_ts": 1598616494
}
当我使用实体框架时,由于找不到任何转换(递归性错误),我会收到一个错误。如果我将HasConversion()与JSon序列化转换一起使用,则文档中的有效负载属性将被视为字符串,因为它已序列化

{Payload: "{\"GroupKey\":\"26f65281-b527-44ab-8aed-f1ef6c53ae2a\"}
这使得我无法对我所需要的宇宙进行质疑


有没有办法存储system.object拥有的实体及其属性保持不变?

我认为您需要为有效负载定义自定义对象;