OData与webapi - 导航属性

时间:2013-05-24 19:09:54

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

我正在编写基于WebApi asp.net构建的OData服务,我正在构建自己的EDM

ODataModelBuilder builder = new ODataModelBuilder();

        builder.Namespace = "Models";

        EntitySetConfiguration<Incident> incident = builder.EntitySet<Incident>("Incidents");
        incident.EntityType.HasKey(c => c.IncidentID);
        incident.EntityType.Property(c => c.Name);
        incident.EntityType.Property(c => c.IncidentType);
        incident.EntityType.Property(c => c.Description);
        incident.HasIdLink(eic =>
        {
            return eic.GenerateSelfLink(false);
        }, false);

        var hasManyComments = incident.EntityType.HasMany(c => c.IncidentComments);
        incident.HasNavigationPropertyLink(hasManyComments, (z, y) =>
        {
            return z.GenerateNavigationPropertyLink(y, false);
        }, false);

        EntitySetConfiguration<IncidentComment> incidentComment = builder.EntitySet<IncidentComment>("IncidentComments");
        incidentComment.EntityType.HasKey(c => c.CommentID);
        incidentComment.EntityType.Property(c => c.IncidentID);
        incidentComment.EntityType.Property(c => c.Content);
        incidentComment.HasIdLink(eic =>
        {
            return eic.GenerateSelfLink(false);
        }, false);

我正在测试BreezeJS和wcf数据客户端的客户端。当我试图在网络中发现事件时,我看到事件属性都被传递了,而且在wcf客户端中的评论如何得到空的评论集合以及Breeze测试,我怀疑元数据是不正确的,什么我错过了

1 个答案:

答案 0 :(得分:0)

我认为......问题可能是ODataModelBuilder没有处理外键的概念。因此,Breeze无法检索将fk链接到其对应的导航属性的元数据。我们已经向微软指出了这一点,并且他们理解了这个问题,但是说这个问题要到稍后发布才能解决。这类似于MS首次发布实体框架时出现的独立关联与外键关联的问题。