我在Web API中遇到了奇怪的行为。如果我使用[BreezeController]进行装饰,那么Metadata()中的断点就不会被击中。如果我删除[BreezeController]它会遇到断点但显然会失败,因为该方法不存在。我正在使用EF6 alpha 2 ......一个问题?
有什么想法吗? API控制器的代码示例如下。
谢谢, 特拉维斯
namespace Mosaic.Bio.WebApi.Controllers
{
public class MosaicBreezeContextProvider : EFContextProvider<Entities>
{
public MosaicBreezeContextProvider() : base() { }
protected override Entities CreateContext()
{
return new Entities(Entities.GetOracleEntityConnection(),true);
}
}
[BreezeController]
public class BreezeController : ApiController
{
readonly MosaicBreezeContextProvider _contextProvider = new MosaicBreezeContextProvider();
[HttpGet]
public string Metadata()
{
return _contextProvider.Metadata();
}
[HttpGet]
public IQueryable<COR_PERSON> CorPersons()
{
return _contextProvider.Context.COR_PERSON;
}
[HttpPost]
public SaveResult SaveChanges(JObject saveBundle)
{
return _contextProvider.SaveChanges(saveBundle);
}
}
}
答案 0 :(得分:1)
截至目前,Breeze 1.4.5支持Microsoft的ASP.NET WebApi 2和Entity Framework 6.请参阅http://www.breezejs.com/documentation/download。
我们还没有对EF 6 Alpha进行过测试......老实说,至少在他们发布EF 6候选版本之前不太可能这样做。
但是说,这看起来不像EF问题。这个相同的代码是否适用于当前的EF位?
答案 1 :(得分:1)
看起来这个问题是由EF6引起的。我获得了Breeze.WebApi的源代码,更新了代码以使用新的EF6命名空间,并重建。
现在一切正常。
此致 特拉维斯