RavenDB TransformResult:将文档的属性分配给集合的每个元素
RavenDB TransformResult: Assign properties of a document to each elements of a collection
我想将一些 RavenDB 文档转换为更适合 UI 的视图模型。 ContractorModel 对象应如下所示:
public class ContractorModel
{
public string Identifier {get; set;}
public TrustcenterModel[] {get; set; }
}
public class TrustcenterModel
{
public string Ean {get; set;}
public string Name {get; set;}
}
对应的json文档格式如下:
ContractorJson:
{
"Identifier": "42",
"Trustcenters": [
{
"Ean": "2222222222222",
"ValidFrom": "2016-01-13T00:00:00.0000000",
"ValidTo": "2499-12-31T00:00:00.0000000"
}
]
}
TrustcenterJson:
{
"Ean": "2222222222222",
"Name": "FooBar",
}
当我用后续的Transformer 查询Contractor 时,我已经得到了相关的Trustcenter 文档,但是我缺少ValidFrom 和ValidTo 这两个属性。如何将承包商的这两个属性投影到每个信任中心?
this.TransformResults = contractors =>
from contractor in contractors
select new
{
contractor.Identifier,
Trustcenters = contractor.Trustcenters.Select(x => this.LoadDocument<TrustCenter>(TrustCenter.IdPrefix + x.Ean)),
};
应该是这样的:
this.TransformResults = contractors =>
from contractor in contractors
select new
{
contractor.Identifier,
Trustcenters = contractor.Trustcenters.Select(x => new
{
x.Ean,
x.ValidFrom,
x.ValidTo,
Name = this.LoadDocument<TrustCenter>(TrustCenter.IdPrefix + x.Ean).Name
}),
};
我想将一些 RavenDB 文档转换为更适合 UI 的视图模型。 ContractorModel 对象应如下所示:
public class ContractorModel
{
public string Identifier {get; set;}
public TrustcenterModel[] {get; set; }
}
public class TrustcenterModel
{
public string Ean {get; set;}
public string Name {get; set;}
}
对应的json文档格式如下:
ContractorJson:
{
"Identifier": "42",
"Trustcenters": [
{
"Ean": "2222222222222",
"ValidFrom": "2016-01-13T00:00:00.0000000",
"ValidTo": "2499-12-31T00:00:00.0000000"
}
]
}
TrustcenterJson:
{
"Ean": "2222222222222",
"Name": "FooBar",
}
当我用后续的Transformer 查询Contractor 时,我已经得到了相关的Trustcenter 文档,但是我缺少ValidFrom 和ValidTo 这两个属性。如何将承包商的这两个属性投影到每个信任中心?
this.TransformResults = contractors =>
from contractor in contractors
select new
{
contractor.Identifier,
Trustcenters = contractor.Trustcenters.Select(x => this.LoadDocument<TrustCenter>(TrustCenter.IdPrefix + x.Ean)),
};
应该是这样的:
this.TransformResults = contractors =>
from contractor in contractors
select new
{
contractor.Identifier,
Trustcenters = contractor.Trustcenters.Select(x => new
{
x.Ean,
x.ValidFrom,
x.ValidTo,
Name = this.LoadDocument<TrustCenter>(TrustCenter.IdPrefix + x.Ean).Name
}),
};