我发展与迪朗达尔/微风一个asp.net的解决方案。
这里是我的代码,让我所有的货主:
var query = EntityQuery.from('Shippers')
.select('id, name, street, city');
return manager.executeQuery(query)
.then(querySucceeded)
.fail(queryFailed);
下面是相关的模型:
public class Shipper
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Street { get; set; }
public string Number { get; set; }
public City City { get; set; }
}
public class City
{
public int Id { get; set; }
public string Name { get; set; }
public string PostCode { get; set; }
public Country Country { get; set; }
}
现在,我也需要包括国家
public class Country
{
[Key]
public int Id { get; set; }
public string Code { get; set; }
public string Name { get; set; }
}
但与实际的查询,我不得到它的国家。
我尝试:
var query = EntityQuery.from('Shippers')
.select('id, name, street, city')
.expand('City.Country');
但我得到的错误:
use of both 'expand' and 'select' in the same query is not currently supported
我的问题 :怎么去的国家?
UPDATE
作为周杰伦的建议,我们可以这样做:
var query = EntityQuery.from('Shippers')
.select('id, name, street, city, city.country')
现在,我得到了一个city_Country
对象:
我不明白为什么我们拿到的这款city_Country
因为国家的数据是在城市\乡村对象已经存在:
此外,它给了我的问题,因为我的下一条语句尝试我的DTO映射到我的实体,这city_Country
对象并不在我的实体存在和发生错误时的映射。
下面我们看看我的实体对象,也没有city_Country
对象:
我必须做一些事情对我的映射特殊才能避免呢?
下面是我的映射操作功能:
function mapToEntity(entity, dto) {
// entity is an object with observables
// dto is from json
for (var prop in dto) {
if (dto.hasOwnProperty(prop)) {
entity[prop](dto[prop]);
}
}
return entity;
}