JayData一对多预测



我想使用 jaydata JSLQ(JavaScript Language Query)将具有一对多PostDataPost列表展平到我的 ViewModel 中

我的 EF 实体如下所示:

public partial class Post
{       
    public Post()
    {           
        this.PostData = new HashSet<PostData>();           
    }
    public int Id { get; set; }
    public virtual ICollection<PostData> PostData { get; set; }
}

我的数据库包含以下记录:

Table: Post
Id;...
1;...
Table: PostData
Id;PostId;FieldType; FieldValue
1; 1;     10;        "foo"
2; 1;     12;        "bar"
3; 1;     34;        "blah"

我希望客户端中的视图模型如下所示:

{id:1, title:'foo'}

这意味着,我想在PostData上放置一个仅返回FieldName==10的过滤器,并且我想将其扁平化为一个简单的对象。

我该怎么做?

context.Posts.toArray(function(posts){console.dir(posts);})

返回一个 POST 对象的数组。接下来呢?

这是通过 EF 中的 SelectMany() 函数实现的,JayData 尚不支持这种方法。但是,您可以通过直接查询 aganst PostData 并筛选 Post 属性来实现相同的输出。

context.PostDatas
  .filter( function(pd) { return pd.FieldType == 10 } )
  .map( function(pd) { return { 
                  PostID: pd.Post.Id, 
                  PostDataId: pd.Id, 
                  Title: pd.FieldValue }})
  .toArray( ... )

相关内容

  • 没有找到相关文章

最新更新