2

我正在编写基于 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 客户端中我得到空的评论集合以及微风测试,我怀疑元数据不正确,什么我失踪了吗

4

1 回答 1

0

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

于 2013-05-28T08:24:19.160 回答