我是了解NoSQL数据库的新手。
假设我有一个类似
的层次结构public interface MyInterface
{
[JsonProperty("id")]
Guid Id { get; }
}
public class Foo : MyInterface
{
public Guid Id { get; set; }
[JsonProperty("intVal")]
public int IntVal { get; set; }
}
public class Bar : MyInterface
{
public Guid Id { get; set; }
[JsonProperty("stringVal")]
public string StringVal { get; set; }
}
是否可以创建包含MyInterfaces
的集合?还是只能保留固定的Json结构,而我必须做类似
public class MyClass
{
[JsonProperty("id")]
public Guid Id { get; set; }
[JsonProperty("type")]
[JsonConverter(typeof(StringEnumConverter))]
public MyClassType Discriminator { get; set; }
[JsonProperty("fooIntVal")]
public int? FooIntVal { get; set; }
[JsonProperty("barStringVal")]
public string BarStringVal { get; set; }
}
public Enum MyClassType
{
[JsonProperty("foo")]
Foo,
[JsonProperty("bar")]
Bar
};
???
答案 0 :(得分:-1)
是否可以创建一个保存MyInterfaces的集合?
当然可以。如评论中所述,cosmos db集合没有架构,因此您可以将其设计为要设计的任何结构。
例如:
{
"id": "1",
"Discriminator": "foo",
"FooIntVal": 5
},
{
"id": "2",
"Discriminator": "bar",
"BarStringVal": "aaa"
}
甚至:
{
"id": "5",
"Discriminator": {
"foo": {
"FooIntVal": 5
},
"bar": {
"BarStringVal": "aaa"
}
}
}
您可以灵活地调整数据结构。建议您参考此doc开始使用。有任何问题,请告诉我。