次の問題があります。データベースにPersonというテーブルがあり、名前、姓、生年月日、性別などの関連データがすべて含まれています。私の質問は:属性のいくつかを隠すことは可能ですか?もしそうなら、どうすればそれを達成できますか?私のエンティティでは、生年月日ではなく、生年月日を取得して年齢を計算するageという属性が必要なためです。また、デフォルト値がnoの場合はNで、yesの場合はYになることができるjobという別の列を非表示にします。その代わりに、同じ列を使用したいのですが、trueまたはfalseを使用します。私はデータベースを変更することでそれを達成できることを知っていますが、私の場合はそれを行うことは許可されていません。そして最後のポイント:データベースに表現がない列を追加することはできません。たとえば、属性の給与を受け取り、それに基づいて(たとえば、500ユーロより多いか少ない場合)、ボーナスを計算する計算されたものですか?ありがとう :)
質問する
164 次
1 に答える
1
コンテキストとエンティティを別のプロジェクトに配置します。説明したPersonエンティティは、次のように実行できます。
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
internal DateTime DateOfBirth { get; set; }
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public double AgeInYears { get { return DateTime.Now.Subtract(this.DateOfBirth).TotalDays / 365; } }
public char Sex { get; set; }
internal string Job { get; set; }
[System.ComponentModel.DataAnnotations.Schema.NotMapped]
public bool HasJob { get { return this.Job == "Y"; } }
}
上記を実行すると、必要なデータ型で、FirstName、LastName、AgeInYears、Sex、および HasJob のみが他のプロジェクトに公開されます。
データベースに存在しない列を追加するには、上記のように適切なデータ注釈を使用してください。
列を非表示にするには、内部としてマークします。
それが役立つことを願っています。
于 2012-05-20T12:50:17.150 に答える