我有一个简单的BreezeController,它返回一个工作存储库对象单元。该对象是以下类的DbSet实体对象:
public int OrderId { get; set; }
public string Customer { get; set; }
public virtual ICollection<OrderLine> OrderLines { get; set; }
工作单元课程如下:
private readonly EFContextProvider<ESpaDBEntities> _contextProvider;
public UoW()
{
_contextProvider = new EFContextProvider<ESpaDBEntities>();
Orders = new Repository<Order>(_contextProvider.Context);
OrderLine = new Repository<OrderLine>(_contextProvider.Context);
Products = new Repository<Product>(_contextProvider.Context);
}
public IRepository<Order> Orders { get; set; }
public IRepository<OrderLine> OrderLine { get; set; }
public IRepository<Product> Products { get; set; }
public SaveResult Commit(JObject changeSet)
{
return _contextProvider.SaveChanges(changeSet);
}
BreezeController操作如下:
[HttpGet]
public IQueryable<Order> Orders()
{
return uow.Orders.All();
}
当我从浏览器访问此方法时,将返回以下Json对象:
$id: "1",$type: "KoDurandalBreeze.DomainModel.Order, KoDurandalBreeze",OrderId: 1,Customer: "Bob",OrderLines: [ ]
无论出于何种原因,即使指定了虚拟,也不会填充订单。有没有人知道为什么JSON对象不包含任何OrderLine对象?
答案 0 :(得分:0)
您需要在服务器上执行等效的EF'Intelude',或者如果这是EF Queryable,您可以在客户端EntityQuery上调用'extend',即
var query = EntityQuery.from("Orders").expand("OrderDetails");
var myEntityManager.executeQuery(query).then(...)