2012-03-16 4 views
1

//あたりEFコード最初のテーブルを使用しながら、どのように派生クラスに基本型のデータを更新することができますが、私のデータモデルである:ここにタイプ

public class People 
{ 
    public int PeopleID { get; set; } 

    [Required] 
    public string Name { get; set; } 
} 

[Table("User")] 
public class User : People 
{ 
    [Required] 
    public string LoginName { get; set; } 

    [Required] 
    public string PassWord { get; set; } 

} 

//と私は人々表

に項目を保存します

context.People.Add(新しいPeople {Name = "Jack"});

context.SaveChanges();

//このシステムのユーザーとして「ジャック」が昇格されました //データを更新してログイン名とパスワードをどのようにすることができますか?

答えて

0

でオーバライド人

[Table("People")] 
public class People 
{ 
    public int PeopleID { get; set; } 

    [Required] 
    public string Name { get; set; } 

    public int Type { get; set; } 
} 

public class User : People 
{ 
    [Required] 
    public string LoginName { get; set; } 

    [Required] 
    public string PassWord { get; set; } 

} 

のアイテムとして、それをasseccことができます。

オブジェクトは型を変更できません。この場合、継承を使用すべきではありません。あなたの答えが頭の上に釘を打つ、どうもありがとうございました

+0

代わりに、UserPerson(エンティティ名は関係なく、あなたがテーブルに名前を付けるものの、単数形でなければなりません、別のヒント)への参照を持つことができます、それは役に立ちます – akara

0

最初に、弁別子列を宣言する必要があります。たとえば、特定の値でユーザーをすべてのpeolpleと区別できないPeopleTypeなどです。

だからあなたscenatioであなたはユーザーとしてのジャックを作成する必要がありますが、あなたはこれが一般的な設計ミスであるDbContext

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
      modelBuilder.Entity<People>().Map<User>(m => { m.Requires("PoepleType").HasValue(1 /* any value you like */); }) 
} 
関連する問題