我有一个实体框架代码优先模型,其中包含一个未映射的列,我仍然希望在服务器和客户端之间保留该列。该模型看起来与此类似,但具有更多属性:
public class OwnerInformation
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
[MaxLength(16)]
public byte[] SSNEncrypted { get; set; }
[NotMapped]
[MaxLength(9)]
[MinLength(9)]
public string SSN { get; set; }
}
当 Breeze 检索元数据时,SSN 不是其中的一部分,但是当通过网络发送数据时,SSN 就在那里。我想让微风通过元数据处理映射,但我希望仍然能够在客户端和服务器之间传递 SSN 并跟踪它的状态,因为我需要在将其保存到数据库之前对其进行加密。
我尝试在像这样获取元数据后添加它:
var ownerType = manager.metadataStore.getEntityType('OwnerInformation');
var sSN = new breeze.DataProperty({
name: 'sSN',
dataType: breeze.DataType.String,
isNullable: false,
maxLength: 9
});
ownerType.addProperty(sSN);
但我得到了错误:The 'OwnerInformation:#Models' EntityType has already been added to a MetadataStore and therefore no additional properties may be added to it.
也许我想多了,有一个更简单的方法。我愿意接受任何建议。