cosmos db 中嵌套对象的 Linq json
Linq for nested object in cosmos db json
你好,我无法在 linq 中找出这个 cosmos 查询的等价物
Cosmos 查询:
select c_option
from c
join c_size in c.size
join c_variant in c_size.variant
join c_option in c_variant.option
where c.type = 'product'
and c_option.optionID = '869'
还有我的 linq,但它 returns 一直都是 null 嗯。
query.SelectMany(product => product.Size
.SelectMany(size => size.Variant
.SelectMany(variant => variant.Option
.Where(option => option.OptionId
.Equals(optionId, StringComparison.OrdinalIgnoreCase))))));
选项是产品中的嵌套子对象。嵌套看起来像 product->size->variant->option
产品模型是一个 class,属性类型为 int/string,集合大小为
public class Product {
int id {get;set;}
IList<Size> Size {get;set;}
}
public class Size {
int id {get;set;}
IList<Variant> Variant {get;set;}
}
public class Variant {
int id {get;set;}
IList<Option> Options {get;set;}
}
public class Option {
int id {get;set;}
IList<OptionAvailability> OptionsAvas {get;set;}
}
结果:我需要通过选项Id得到一个选项
原来我在 json 属性 中遇到了拼写问题,optionID 而不是 optionId。除此之外,现在一切正常。
干杯。
你好,我无法在 linq 中找出这个 cosmos 查询的等价物
Cosmos 查询:
select c_option
from c
join c_size in c.size
join c_variant in c_size.variant
join c_option in c_variant.option
where c.type = 'product'
and c_option.optionID = '869'
还有我的 linq,但它 returns 一直都是 null 嗯。
query.SelectMany(product => product.Size
.SelectMany(size => size.Variant
.SelectMany(variant => variant.Option
.Where(option => option.OptionId
.Equals(optionId, StringComparison.OrdinalIgnoreCase))))));
选项是产品中的嵌套子对象。嵌套看起来像 product->size->variant->option
产品模型是一个 class,属性类型为 int/string,集合大小为
public class Product {
int id {get;set;}
IList<Size> Size {get;set;}
}
public class Size {
int id {get;set;}
IList<Variant> Variant {get;set;}
}
public class Variant {
int id {get;set;}
IList<Option> Options {get;set;}
}
public class Option {
int id {get;set;}
IList<OptionAvailability> OptionsAvas {get;set;}
}
结果:我需要通过选项Id得到一个选项
原来我在 json 属性 中遇到了拼写问题,optionID 而不是 optionId。除此之外,现在一切正常。
干杯。