我正在使用带有 Breeze 和 Angular 的 MVC 4。
我已经创建了一些域模型,我只想显示一个模型列表。这是我的代码:
接口控制器:
[BreezeController]
public class TournamentApiController : ApiController
{
private EFContextProvider<TournamentContext> _contextProvider;
public TournamentApiController()
{
_contextProvider = new EFContextProvider<TournamentContext>();
}
[HttpGet]
public string Metadata()
{
return _contextProvider.Metadata();
}
[HttpGet]
public IQueryable<Tournament> Tournaments()
{
return _contextProvider.Context.Tournaments;
}
// ~/breeze/todos/SaveChanges
[HttpPost]
public SaveResult SaveChanges(JObject saveBundle)
{
return _contextProvider.SaveChanges(saveBundle);
}
}
数据服务.js:
/* dataservice: data access and model management layer */
app.dataservice = (function (breeze) {
breeze.config.initializeAdapterInstance("modelLibrary", "backingStore", true);
var serviceName = '/breeze/TournamentApi'; // route to the same origin Web Api controller
// *** Cross origin service example ***
//var serviceName = 'http://todo.breezejs.com/breeze/todos'; // controller in different origin
var manager = new breeze.EntityManager(serviceName);
// manager.enableSaveQueuing(true);
var dataservice = {
getAllTournaments: getAllTournaments,
createTournament: createTournament,
saveChanges: saveChanges,
};
return dataservice;
/*** implementation details ***/
function getAllTournaments() {
var query = breeze.EntityQuery
.from("Tournaments");
return manager.executeQuery(query).then(getAllSucceeded);
}
function getAllSucceeded(data) {
debugger;
return data.results;
}
function createTournament(name) {
return manager.createEntity('Tournament', { Name: name });
}
function saveChanges() {
return manager.saveChanges().fail(fail);
}
function fail(error) {
console.log = error;
debugger;
}
})(breeze);
和我的角度控制器:
$scope.getAllTournaments = function () {
dataservice.getAllTournaments().then(getAllSucceeded);
}
function getAllSucceeded(data) {
debugger;
if (data.length > 0)
$scope.tournaments = data;
else
$scope.tournaments = [];
}
$scope.getAllTournaments();
在客户端,我可以看到存储在数据库中的 4 个对象。但是,该列表包含如下对象:
0: e.dataType
1: e.dataType
2: e.dataType
3: e.dataType
当我展开这样一个对象时,我看到:
_backingStore: Object
entityAspect: o
__proto__: Object1
当我进一步扩展 _backingStore 时,我看到了:
Date: Mon Jan 01 1900 00:00:00 GMT+0100 (W. Europe Standard Time)
Id: 1
Name: "123"
这当然是我需要的东西。
我感觉自己做错了什么,因为我认为e.dataType._backingStore
在迭代列表时不应该在客户端代码中使用。
我该怎么做才能调用属性名称而不是整个路径?