我有一个新创建的OData v4服务。我已经生成了一个代理,并已成功将其连接到所有操作。我现在想通过坐在外面的局部类在生成的代理中添加两个属性,示例如下:public partial class ExchangeRate{ public DateTime? AddedOnDate { get; set; } public DateTime? UpdatedOnDate { get; set; }}现在,当我查询服务时,在“客户端”端(我的代码端,不是服务端)出现错误,表明DateTime中没有可设置的属性。我得到了不支持DateTime的消息,它应该是DateTimeOffset,我的观点是找到一种方法,使代理在连接到服务时将忽略这些属性,例如“忽略”属性或类似的东西。我尝试将“ System.ComponentModel.DataAnnotations.Schema.NotMappedAttribute”放在每个属性上,但没有用。该错误起源于此:“ Microsoft.OData.Client.ClientEdmModel.ValidateComplexTypeHasProperties” 最佳答案 是通过将属性设置为内部来实现的,EF不在乎属性是否公开,至少在我创建单独的映射类(EntityTypeConfiguration )时,OData代理停止选择这些类。这些属性现在看起来像这样:internal DateTime? AddedOnDateEF { get { if (!this.AddedOn.HasValue) return null; return this.AddedOn.Value.DateTime; } set { if (!value.HasValue) this.AddedOn = null; else { this.AddedOn = new DateTimeOffset(value.Value); } } }实体配置类的构造函数中包含以下内容:this.Property(t => t.AddedOnDateEF).HasColumnName("AddedOn");this.Ignore(t => t.AddedOn);类型为DateTimeOffset的“ AddedOn”属性位于OData代理中,该代理是上例中显示的部分类“ ExchangeRate”的另一端。 10-08 09:35