ИМХО вам следует создать новый DTO для модели, которую вы хотите связать, применяя Принцип единой ответственности , а также лучше для целей обслуживания.Если вы начнете наследовать от базового класса, позже вы столкнетесь с огромной проблемой, если вам нужно будет изменить контракт этого класса, например, удалить ненужные свойства, которые могут повлиять на ваши подклассы.
Теперь вы можете создать
class ProjectWithOnlyName
{
public string name{get;set;}
}
и передать этот экземпляр в качестве параметра вашего контроллера
public void MyControllerMethod([FromBody] ProjectWithOnlyName dto)
{
....
}
Я бы предложил DTO для каждого выполняемого вами действия.
Для обновления
class ProjectWithOnlyNameForUpdateDto
{
public string name{get;set;}
}
[HttpPut]
public void CreateMethod([FromBody] ProjectWithOnlyNameForUpdateDto dto)
{
....
}
Для создания
class ProjectWithOnlyNameForCreateDto
{
public string name{get;set;}
}
[HttpPost]
public void CreateMethod([FromBody] ProjectWithOnlyNameForCreateDto dto)
{
....
}
Надеюсь, это поможет