There are many related entities in Domain assembly. For example People
that has navigation properties (Level1) to FamilyRelations
, Houses
and Persons
. Beside this the Houses
has own nav.prop (Level2) to Address
and Address
(Level3) has to City
, Street
... etc.
When I set
LazyLoadingEnabled
to true then I'm getting JSON (on the left side in screen) with all related entities.
How can I get only one level of nesting (as on the right side in scree) or set other levels to NULL
value (because I had setting Newtonsoft.Json.NullValueHandling.Ignore)?
Can I implement it without use .Include
to each entity?
My class of People:
public class People : BaseEntity
{
public int PersonID { get; set; }
public int HouseID { get; set; }
public int PeopleNumber { get; set; }
public int? FamilyRelationID { get; set; }
//FK to House
public virtual House Houses { get; set; }
//FK to Person
public virtual Person Persons { get; set; }
//FK to FamilyRelations
public virtual FamilyRelations FamilyRelations { get; set; }
}
WebAPI config:
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling
= Newtonsoft.Json.ReferenceLoopHandling.Ignore;
config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling
= Newtonsoft.Json.NullValueHandling.Ignore;
I do not have any solution because I did not have enough experience with it.
So, I need your suggestions, advices about it. Sorry for my English and if I have to add more informations, please let me know. Thanks
UPDATE
I've tried to add [JsonIgnore]
or ignore those properties in mapping class but when I do request get/House
then I need to get field from Address
without nav.prop and when request get/People
then I do not nedd Address
. As a result I can't ingnore it.