Breezejs,OData无法在客户端看到导航属性实体的多对多关系

时间:2015-05-06 11:44:50

标签: angularjs asp.net-web-api odata breeze

我正在为BreezeJS / WebAPI / OData建立多对多关系,如下所示: enter image description here

元数据: enter image description here  并使用dataContext.Users.Include(“Customers”)获取数据是正常的: enter image description here 但为什么在结果用户对象中没有客户导航属性: enter image description here

我读过this article但是没有运气仍然无法使用user.customers()

我完全陷入困境,请帮帮我。

提前致谢。

1 个答案:

答案 0 :(得分:1)

EntityFramework知道UserCustomers表,即使它没有作为实体公开。但是Breeze只知道元数据中的内容,并且EF不会为UserCustomers生成Breeze元数据,除非它作为实体公开。 (通常这是您想要的,因为它允许您向关系表添加其他数据,例如添加UserCustomer关系的日期。)

多对多映射表UserCustomers必须作为实体公开。然后,您的元数据将包含该实体,并且您的Customer实体将拥有UserCustomers个集合,而您的User实体将拥有UserCustomers个集合。

在客户端上,如果要在用户和客户之间创建新关系,可以添加新的UserCustomer实体以将其关联起来。