Вернуть объекты 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. Надеюсь, это поможет кому-то еще.