我有一个带OData V4的WebAPI 2.2应用程序.我也在使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
为了向我的客户提供计算属性,我需要在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();
}
Run Code Online (Sandbox Code Playgroud)
因此,当我在客户端获取数据时,每个对象都具有Calculated属性.
但是,当我尝试创建(POST)新元素或更新(PUT)现有元素时,我的操作无法识别该元素并生成错误,表明它没有找到该属性的"set方法".
我读了几篇关于OData中只读属性的帖子(显然不支持),但是我没有找到一种方法来使用OData和计算属性.
关于如何克服这种情况的一些建议?