(ほぼ) すべてのテーブルの作成および変更されたフィールドを含む MSSQL データベースによってサポートされている Web API プロジェクトがあります。これらのフィールドにはトリガーがあり、レコードの挿入時と更新時に両方がそれぞれ更新されます。
リクエストが成功した後、データを JSON にシリアル化するときに、リクエストを行うフロントエンドがそれを処理できるように、これらの作成および変更されたフィールドを送信したいと考えています。ただし、私が望んでいないのは、データが逆シリアル化される (またはポストバックされる) ときにこれらのフィールドが変更される可能性があることです。非常に単純で、フィールドで [JsonIgnore] 属性を使用するだけです。ゲットではなくセットだけに置いてください。
ここで、物事が私にとって混乱し始めます。私のプロジェクトのすべてのモデルは、エンティティ モデル (.edmx) から自動的に生成されます。そのため、モデル自体を直接編集することはできませんが、その上に部分モデルを生成する必要があります。これに対する解決策は、[MetadataType] 属性を使用して他の SO スレッドで見たことがあります。
しかし、これを(効率的に)私のケースに適用するにはどうすればよいですか?私は周りを検索してきましたが、「より高い」部分クラスで自動実装されたプロパティを引き離す方法の例は見つかりませんでした。それでも、これは、すべてのモデルに対して部分クラスを作成する必要があることを意味し、これは非常に面倒です。これまで誰もこれをやったことがないとは思えないので、これを追求するもっとエレガントな方法はないでしょうか?
クラスの例は次のとおりです。
public partial class Person
{
[DataMember]
public Nullable<System.DateTime> Created { get; set; }
[DataMember]
public Nullable<System.DateTime> Modified { get; set; }
}