创建未使用Entity Framework中的数据库中的字段映射的外键字段

时间:2013-03-31 03:53:23

标签: entity-framework c#-4.0

如何使用Entity Framework中数据库中的字段创建外键字段?

我希望在表格DecodePersonnelID中的MyUser和表格PersonnelID中的Personnel(字段键)之间创建关系。

public partial class MyUser
{
    public int UsersID { get; set; }
    public string PersonnelID { get; set; }
    [NotMapped]
    public int DecodePersonnelID
    {
        get { return DecodeMD5PersonnelID(PersonnelID); }
        set { PersonnelID = EncodeMD5(value.ToString() ); }
    }
    public string UsersName { get; set; }
}

public partial class Personnel
{
    public int PersonnelID { get; set; }
    public string FirstNameFa { get; set; }
    public string LastNameFa { get; set; }
    public bool Gender { get; set; }
}

2 个答案:

答案 0 :(得分:0)

如果DecodePersonnelID是表MyUser中的列,则您必须反过来执行此操作,即使用PersonnelID标记[NotMapped],然后标记DecodePersonnelID作为外键:

public partial class MyUser
{
    public int UsersID { get; set; }

    [NotMapped]
    public string PersonnelID
    {
        get { return EncodeMD5(DecodePersonnelID.ToString()); }
        set { DecodePersonnelID = DecodeMD5PersonnelID(value); }
    }

    [ForeignKey("Personnel")]
    public int DecodePersonnelID { get; set; }
    public string UsersName { get; set; }

    public Personnel Personnel { get; set; }
}

public partial class Personnel
{
    public int PersonnelID { get; set; }
    public string FirstNameFa { get; set; }
    public string LastNameFa { get; set; }
    public bool Gender { get; set; }
}

这将在MyUserPersonnel之间创建一对多关系,其中MyUser.Personnel为导航,DecodePersonnelID为外键属性。

答案 1 :(得分:0)

您可以在public virtual Personnel Personnel { get; set; }中定义MyUser

public partial class MyUser
{
    public int UsersID { get; set; }

    public string PersonnelID { get; set; }
    [NotMapped]
    public int DecodePersonnelID
    {
        get { return DecodeMD5PersonnelID(PersonnelID); }
        set { PersonnelID = EncodeMD5(value.ToString() ); }
    }
    public string UsersName { get; set; }
    public virtual Personnel Personnel { get; set; }
}
public partial class Personnel
{
    public int PersonnelID { get; set; }
    public string FirstNameFa { get; set; }
    public string LastNameFa { get; set; }
    public bool Gender { get; set; }
}