я работаю над проектом WebAPI и у меня есть 2 объектов в моем домене:
StreetASP.NET WebAPI JSON ответ и Сущности с внешним ключом
public class Street
{
public int ID { get; set; }
public string Name { get; set; }
public int StreetTypeID { get; set; }
public virtual StreetType StreetType { get; set; }
}
и StreetType:
public class StreetType
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Street> Streets { get; set; }
}
Я использую FluenApi для сопоставления этих объектов:
public class StreetTypeMap : EntityTypeConfiguration<StreetType>
{
public StreetTypeMap()
{
HasKey(t => t.ID);
Property(t => t.ID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
Property(t => t.Name).IsRequired().HasMaxLength(50);
HasMany(a => a.Streets).WithRequired(p => p.StreetType).HasForeignKey(p => p.StreetTypeID);
ToTable("StreetType");
}
}
и аналогичные f или Улица.
Теперь я получаю JSON:
{
"id":1,
"name":"Street1",
"streettypeid":3
}
Как я могу получить JSON как:
{
"id":1,
"name":"Street1",
"streettypeid":
{
"id":3,
"name":"Type3"
}
}
или другие подобные структуры. Как я могу это сделать в .NET?
Мой контроллер:
StreetController : BaseApiController<Street>
и
public class BaseApiController<T> : ApiController where T : BaseEntity
{
protected UnitOfWork unitOfWork = new UnitOfWork();
protected IRepository<T> repository;
public BaseApiController()
{
repository = unitOfWork.EFRepository<T>();
}
public virtual IQueryable<T> Get()
{
var entity = repository.Table;
if (entity == null)
{
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NoContent));
}
return entity;
}
}
Спасибо. Whili Я пытаюсь, я получил ошибку: 'Не удалось найти свойство с именем 'StreetTypes' в типе 'Domain.Entities. Улица '. "' –
Какой http-запрос вы используете? – Marusyk
'http: // mysite/Street? $ Expand = StreetTypes' –