我正在编写基于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测试,我怀疑元数据是不正确的,什么我错过了
答案 0 :(得分:0)
我认为......问题可能是ODataModelBuilder没有处理外键的概念。因此,Breeze无法检索将fk链接到其对应的导航属性的元数据。我们已经向微软指出了这一点,并且他们理解了这个问题,但是说这个问题要到稍后发布才能解决。这类似于MS首次发布实体框架时出现的独立关联与外键关联的问题。