私は現在、Entity Framework (まだ最も安定したプラットフォームではないことを知っています) を使用して Database-First メソッドを使用する Web API プロジェクトに取り組んでいますが、非常に奇妙なことに遭遇しています。
APIController 内の GET メソッドが、このような LINQ Include() メソッドを含む DbSet 内のすべてのレコードを返そうとすると、500 エラーが返されます。
// GET api/Casinos
public IEnumerable<casino> Getcasinos()
{
var casinos = db.casinos.Include(c => c.city).Include(c => c.state);
return casinos.AsEnumerable();
}
それでも、このメソッドは正常に機能し、データベース内からデータを返します。
// GET api/States
public IEnumerable<state> Getstates()
{
return db.states.AsEnumerable();
}
したがって、他のインスタンスで、LINQ クエリなしでエンティティを返す場合はうまく機能することを証明しましたが、DbContext で使用される Include メソッドがある場合は失敗します。
もちろん、Fiddler、Chrome/Firefox 開発ツール、および追加を使用しても、このエラーを見つけようとすることは不可能です。GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
誰かがこれを解決した場合は、データの返却を開始できるように、適切な解決策を知っておくとよいでしょう! ありがとう!:)
PS私はSQL Server 2012を使用しています