Я работаю над webApi 2, где я использую EF 6 (DB-First) в качестве доступа к данным.У меня так много сущностей в моем файле * .edmx, и я хочу использовать их в качестве возвращаемых типов моих методов webApi.
когда я использую настройки по умолчанию, выходные данные сериализуются с помощью XML Serializer, но когда я меняю сериализатор по умолчанию на Json Serializer, добавляя эти строки (в WebApiConfig.cs
):
GlobalConfiguration.Configuration.Formatters.Clear();
GlobalConfiguration.Configuration.Formatters.Add(new JsonMediaTypeFormatter());
это простовозвращает Id : "1"
.я попробовал эти строки также:
var json = config.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
json.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
config.Formatters.Remove(config.Formatters.XmlFormatter);
он имеет такие же результаты.единственным подходящим подходом для меня было использование JavaScriptSerializer
.но это делает мой WebApi непредсказуемым для других разработчиков, потому что он просто возвращает String
значения.Я использую JavaScriptSerializer
следующим образом:
public string Method(){
JavaScriptSerializer js = new JavaScriptSerializer();
// ....
return js.Serialize(Datas);}
Существует ли какой-либо применимый подход для автоматической сериализации объекта EF в Json в WebApi 2?