Вернуть объекты Entity Framework как JSON с NancyFx

Я строю небольшой API (для операций чтения - GET), используя NancyFX и C# с.NET 4.0

Я использую Entity Framework 6.0 для доступа к базе данных SQL Server 2008R2.

У меня есть следующий маршрут с Нэнси (это только для целей тестирования):

public ExampleNancyModule() 
{
    Get["/v1/address_types"] = parameters =>
    {
        var address_types = context.address_type.First();
        return Response.AsJson(address_types);
    };
}

Я могу получить доступ к маршруту с Почтальоном, но я получаю пустое тело ответа. Как я могу вернуть объект и / или список объектов с Нэнси?

Я предполагаю, что есть больше конфигурации, которая должна быть сделана сначала. Я новичок с Нэнси, я только начал пользоваться этим утром. Это кажется многообещающим!

Спасибо за поддержку.

1 ответ

Решение

Я нашел решение для этого случая:

Я изменил Json Serializer по умолчанию, который поставляется с Nancy с NewtonSoft.Json

Код в ExampleNancyModule остался прежним, однако я добавил файл Boostrap, чтобы перезаписать поведение Нэнси по умолчанию. Мой файл Bootstrap.cs выглядит так:

namespace MyProject
{
    public class Bootstrap : DefaultNancyBootstrapper
    {
        protected override void ConfigureApplicationContainer(TinyIoCContainer container)
        {
            base.ConfigureApplicationContainer(container);

            container.Register<JsonSerializer, CustomJsonSerializer>();
        }
    }

    public class CustomJsonSerializer : JsonSerializer
    {
        public CustomJsonSerializer()
        {
            this.ContractResolver = new CamelCasePropertyNamesContractResolver();
            this.Formatting = Formatting.Indented;
        }
    }
}

Благодаря этому я могу получить ответ JSON, который учитывает атрибуты и конфигурацию JSON моих моделей Entity Framework. Надеюсь, это поможет кому-то еще.

Другие вопросы по тегам