在挣扎了一段时间后,为了保护我的模型,同时享受微风元数据的风格,我终于为元数据创建了第二个DbContext。这就是传给EFContextProvider的那个。所以我有一个模型的DbContext,还有一个用作数据访问层的dto,之后我努力尝试使用automapper在linq投影中自动映射,但一直遇到一个空引用异常。但是,这个库:http://linqprojector.codeplex.com/,它是相关的,并且使用完全相同的语法,可以完美地工作。现在,我的服务器上有一个方法,它实际上返回我想要的内容:一个包含列表的dto。假设我有一个类博客,其中包含模型中的帖子列表。该方法返回一个包含PostsDTO列表的对象BlogDTO。
但是,在Breeze中,在BlogDTO对象中,帖子数组保持为空。我亲眼见证了发送到浏览器的数据,但由于某种原因,Breeze忽略了其中的一些!
老实说,沿着这条路走下去真的有相当多的问题需要解决。
只是想和你们分享一下。如果有人明白这一点并能帮助我的话。下面是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属性保存了我想要的所有数据!我必须自己解析它吗?那么将我的元数据压缩到微风中有什么意义呢?
发布于 2013-06-19 21:29:11
好了,我终于弄明白这个问题了。显然,Breeze需要InverseProperty属性。一旦设置好了,我就可以看到我的相关实体了!
发布于 2013-06-27 14:58:50
需要考虑的其他重要因素:避免在类中使用循环引用。否则,据我所知,Breeze可能会简单地忽略相关实体。
https://stackoverflow.com/questions/16965838
复制相似问题