サーバーとクライアントの間で保持したいマップされていない列を持つ Entity Framework Code First モデルがあります。モデルは、さらに多くのプロパティを持つ次のようになります。
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 は存在します。メタデータを介してそよ風にマッピングを処理させたいのですが、DB に保存する前に暗号化する必要があるため、クライアントとサーバーの間で 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.
たぶん私はこれを考えすぎており、もっと簡単な方法があります。私はどんな提案にも心を開いています。