昨日多くの助けを借りた後、asp.net4ベータ版の既知のエラーに遭遇しました-VS2012 RC Express(4.5)にアップグレードしましたが、内部サーバーエラーが発生しましたが、理由がわかりません。私はWebAPIを作成しています:
モデル
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations.Schema;
namespace MvcApplication6.Models
{
public class tblCustomerBooking
{
[Key()]
public int customer_id { get; set; }
public string customer_name { get; set; }
public string customer_email { get; set; }
public virtual ICollection<tblRental> tblRentals { get; set; }
}
public class tblRental
{
[Key()]
public int rental_id { get; set; }
public int room_id { get; set; }
public DateTime check_in { get; set; }
public DateTime check_out { get; set; }
public decimal room_cost { get; set; }
public int customer_id { get; set; }
[ForeignKey("customer_id")]
public virtual tblCustomerBooking tblCustomerBooking { get; set; }
}
}
次に、コントローラーの追加ウィザードを使用し、[テンプレート:エンティティフレームワークを使用した読み取り/書き込みアクトインを備えたAPIコントローラー]を選択し、モデルクラスとしてtblCustomerBookingを選択し、をクリックしました。これは次のとおりです。
using System.Data.Entity;
namespace MvcApplication6.Models
{
public class BookingsContext : DbContext
{
public BookingsContext() : base("name=BookingsContext")
{
}
public DbSet<tblCustomerBooking> tblCustomerBookings { get; set; }
}
}
Visual Studio 2012 Expressによって自動的に生成される私のコントローラー(BookingsController.cs)は次のとおりです。
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using MvcApplication6.Models;
namespace MvcApplication6.Controllers
{
public class BookingsController : ApiController
{
private BookingsContext db = new BookingsContext();
// GET api/Bookings
public IEnumerable<tblCustomerBooking> GettblCustomerBookings()
{
return db.tblCustomerBookings.AsEnumerable();
}
}
}
上記の「returndb.....」にブレークポイントを追加し、VSでウォッチパーツを確認しました。これにより、オブジェクト、顧客、および関連するレンタルが明確に表示されます。
ただし、スクリプトの続行を許可すると、http500エラーが発生します(以下のFiddlerを参照)。
エラーが発生している理由を確認するためにコントローラーに追加できるコードは他にありますか?または、誰かが何が間違っているのかを知ることができますか?最初のスクリーンショットに示されているように、VSはそれを正常に取得しているように見えますが、送信できないようです。
ヘルプやポインタをありがとう、
マーク
アップデート
こんにちは-私は単にAPIを要求しすぎていますか?1対多の関係を持つオブジェクトを単純に返すことは(箱から出して)不可能ですか?実際に単一のオブジェクトリストのみを生成できますか?
ありがとう、マーク