0

Entity Framework にマップされた次のような単純なテーブルがあります。IEnumerable(Of MyTableObject) の非常に基本的な呼び出しだけを返そうとしていますが、MVC API はエラー コード 500 で爆発しています。

エンティティ フレームワーク モデル

次のコードでこのモデルを返そうとします。

' GET api/chatlog
Public Function GetValues() As IEnumerable(Of ChatLog)
    Using mcEntity As New McEntities

        Return mcEntity.ChatLogs.ToList()
    End Using
End Function

返されたデータで私にとって残念です。何も得られない?

MVC Web API は EF からパイプにオブジェクトを渡すことをサポートしていませんか、それとも手動でこれを XML にシリアル化する必要がありますか?

Fiddler が「HTTP/1.1 500 内部サーバー エラー」をスローする

4

1 に答える 1

0

いくつかのこと、

  1. 次のようにして、エラー メッセージで例外の詳細を有効にできますか?

    Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;

    例外メッセージとスタック トレースを共有しますか?

  2. using ステートメントに関しては、通常、EFContext をアクションではなくコントローラーに配置することをお勧めします。ApiController は IDisposable です。コントローラーの Dispose メソッドをオーバーライドし、そこに DBContext を破棄する必要があります。例、

    public CustomersContext _db = new CustomersContext();
    
    public IEnumerable<Customer> Get ()
    {
        return _db.Customers;
    }
    
    protected override Dispose(bool disposing)
    {
        base.Dispose(disposing);
    
        if(disposing)
        {
            _db.Dispose();
        }
    }
    
于 2013-02-10T18:02:47.280 に答える