У меня есть приложение WebAPI 2.2 с OData V4. Также я использую EF 6.1.
В одном из моих объектов у меня есть вычисленное свойство:
public class Person {
public string FirstName { get; set; }
public string LastName { get; set; }
// Calculated Property - No setter
public string FullName {
get {
return FirstName + " " + LastName;
}
}
Чтобы предоставить рассчитанное свойство моим клиентам, мне нужно зарегистрироваться в OData Model
public static IEdmModel GetModel()
{
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.Namespace = "NavigationServices";
builder.EntityType<Person>;
builder.EntityType<Person>().Property(a => a.FullName); // Calculated Property
....
return builder.GetEdmModel();
}
Итак, когда я получаю свои данные на стороне клиента, каждый объект имеет свойство Calculated.
Однако, когда я пытаюсь создать (POST) новый элемент или Update (PUT) существующий, мое действие не распознает элемент и генерирует ошибку, говорящую, что он не находит "метод установки" для свойство.
Я прочитал пару сообщений о свойствах только для чтения в OData (видимо, не поддерживается), но я не нашел способ использовать OData с вычисленными свойствами.
Некоторые советы о том, как преодолеть эту ситуацию?