0

我有一个简单的表,如下所示,与实体框架映射。我试图只返回一个非常基本的 IEnumerable(Of MyTableObject) 调用,但是 MVC API 只是用错误代码 500 炸毁。当我尝试返回一个 IEnumerable(Of String) 并只选择一个列时,它会执行相同的操作。

实体框架模型

我尝试使用以下代码返回此模型。

' 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 回答