2012-05-16 59 views
0

我有以下問題:我在數據庫中有一個名爲Person的表,它具有所有相關數據,如名,姓,出生日期,性別等。我的問題是:是否有可能隱藏一些屬性,如果是,我怎麼能實現這一點。我需要這樣做,因爲在我的實體中,而不是出生日期,我想要一個稱爲年齡的屬性,它將採用出生日期並計算年齡。另外,我想要隱藏另一個名爲job的工作列,其中默認值N爲no,也可以爲Y。而不是它,我想有相同的列,但有真或假。我知道我可以實現更改數據庫,但在我的情況下,我不允許這樣做。最後一點:在那裏添加額外的列,這些列在數據庫中沒有表示形式..例如計算出的屬性工資和基於它的工資(例如,如果它大於或小於500歐元)計算獎金?謝謝:)自定義實體框架中的實體

+0

只是更具體我不允許使用視圖 – Andrey

回答

1

將你的上下文和實體放到一個單獨的項目中。你所描述的實體可以做如下:

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"; } } 
} 

做上述只會暴露名字,姓氏,AgeInYears,性別和HasJob給其他項目,在你想要的數據類型。

要添加數據庫中不存在的列,只需使用相應的Data Annotation,如上所示。

要隱藏一列,請將其標記爲內部。

希望有所幫助。