0

经过一段时间的挣扎,为了在享受 Breeze 元数据的同时保护我的模型,我终于为元数据创建了第二个 DbContext。那就是传递给 EFContextProvider 的那个。所以我有一个用于模型的 DbContext,以及一个用作数据访问层的 DbContext。之后,我努力使用 automapper 在 linq 投影中进行自动映射,但一直遇到空引用异常。但是,这个库:http ://linqprojector.codeplex.com/相关并使用完全相同的语法,可以完美运行。现在,我的服务器上有一个方法可以实际返回我想要的:一个 dto,包含一个列表。假设我有一个类博客,其中包含模型中的帖子列表。该方法返回一个包含 PostsDTO 列表的对象 BlogDTO。

但是,在 Breeze 中,在 BlogDTO 对象中,帖子数组保持为空。我亲眼目睹了数据被发送到浏览器,但由于某种原因,Breeze 忽略了其中的一些!

老实说,沿着这条路走下去,确实有很多问题需要解决。

只是想和大家分享一下。如果有人理解这一点并可以帮助我。这是微风查询:

 var query = EntityQuery
            .from('BlogWithPosts')
            .withParameters({id: blogId});

return manager.executeQuery(query)
                .then(querySucceeded)
                .fail(queryFailed);

function querySucceeded(data) {
            console.log(data);
            var s = data.results[0];
            return blogObservable(s);
        }

所以要清楚,在对象数据中,在 XHR 属性中,responseText 属性包含我想要的所有数据!我必须自己解析吗?那么让我的元数据变得轻而易举有什么意义......

4

2 回答 2

0

好的,我终于想通了。显然 Breeze 需要 InverseProperty 属性。一旦设置好,我就可以看到我的相关实体!

于 2013-06-19T13:29:11.490 回答
0

其他需要考虑的重要因素:避免类中的循环引用。否则,据我所知,Breeze 可能只是简单地忽略相关实体。

于 2013-06-27T06:58:50.393 回答