我有一個帶有OData V4的WebAPI 2.2應用程序。另外我使用EF 6.1。OData只讀屬性
在我的實體之一,我有一個計算的屬性:
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的型號
所以註冊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)新元素或更新(PUT)現有的元素時,我的操作無法識別該元素,並生成一個錯誤,指出它找不到「set method」爲財產。
我讀了幾篇關於OData中的只讀屬性的帖子(顯然不支持),但我沒有找到一種方法使用OData與計算屬性。
如何克服這種情況的一些建議?
我們如何在webapi中做到這一點? – Shivkumar 2014-12-04 08:17:46
我嘗試過用空套裝的技巧。正是我在找什麼。非常感謝你。 – 2015-04-28 07:51:25
@Shivkumar我剛剛在web api中嘗試了這個,並且與空setter一樣工作。 – 2015-04-28 09:32:10