尝试按自述文件中的指令运行新项目时收到以下错误。使用WebAPI和Breeze的新项目失败
1:查询托多斯
2:查询失败:在控制器的动作 '托多斯' 'BreezeSample' 与返回类型“System.Collections.Generic.List`1 [[MyTasks.Api.Models.BreezeSampleTodoItem, MyTasks.Api,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]'不支持查询。确保返回的内容的类型是IEnumerable,IQueryable或任一接口的通用形式。
UPDATE:
我检查我的事件查看器,看看,我从来没有试图在我的机器上进行调试时见过的SQL错误 -
用户登录失败“我的机\用户-名称'。原因:无法打开明确指定的数据库。 [客户端:]
由于某种原因,似乎由BreezeSamplesContext生成的数据库无法访问?它已经由代码优先生成,但我无法查询它(显然)。
更新2:
我已经改变了默认的方式 -
[HttpGet]
public IQueryable<BreezeSampleTodoItem> Todos()
{
System.Data.Entity.DbSet<BreezeSampleTodoItem> result = null;
try
{
result = _contextProvider.Context.Todos;
}
catch (Exception exc)
{
throw new Exception(exc.Message);
}
return result;
}
虽然种方法工作,并且数据库被丢弃,并用种子值重新填充,我得到的0响应项目在上面的'结果'中。
是的,我使用此代码返回六个项目。当然,我仍然遇到错误,特别是现在我们正在转换为List。再进一步,我使用AsQueryable()将返回类型转换为IQueryable,但仍然得到相同的错误。 – dizzyguy
一条额外的信息。当我尝试评估'_contextProvider.Context的返回类型。Todos在调试期间 - 使用最初的代码,而不是你发送的内容 - 我得到了一个有趣的回应。即使我在调用调试器后立即评估调用,看起来好像调用即时超时。 我收到以下错误:功能评估被禁用,因为之前的功能评估超时。您必须继续执行才能重新启用功能评估。 – dizzyguy
此外,有趣的是,如果我使用下面的代码,并在itemList中设置断点... 'var items = _contextProvider.Context.Todos; var itemList = items.ToList(); 回报项目;' ....我得到这个错误: _Cannot DROP DATABASE“BreezeSampleContext-20121213144159”,因为它是目前在use._ – dizzyguy