Наша команда использует Entity Framework 4.1 ORM. Мы не используем его в режиме Code First, но мы используем чистые функции генерации POCO из этой версии.
Мы столкнулись с тем, что хотим создать унаследованный класс на основе EF POCO, но пока единственный способ увидеть, как это происходит, — это иметь таблицу сопоставления в базе данных. Есть ли лучший способ создать этот унаследованный объект? Следующий код является примером того, о чем я говорю.
Этот класс создается:
public partial class Member
{
public Member()
{
this.ContactAddresses = new HashSet<ContactAddress>();
this.ContactEmails = new HashSet<ContactEmail>();
this.FormDatas = new HashSet<FormData>();
this.ContactPhones = new HashSet<ContactPhone>();
}
public int ID { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public string Alias { get; set; }
public string Title { get; set; }
public string Company { get; set; }
public string Prefix { get; set; }
public string Suffix { get; set; }
public System.DateTime CreatedDate { get; set; }
public int CreatedBy { get; set; }
public Nullable<System.DateTime> ModifiedDate { get; set; }
public Nullable<int> ModifiedBy { get; set; }
public Nullable<System.Guid> AspNetUserID { get; set; }
public virtual aspnet_Users aspnet_Users { get; set; }
public virtual ICollection<ContactAddress> ContactAddresses { get; set; }
public virtual ICollection<ContactEmail> ContactEmails { get; set; }
public virtual ICollection<FormData> FormDatas { get; set; }
public virtual ICollection<ContactPhone> ContactPhones { get; set; }
}
Это пример того, что мы хотели бы создать:
public class SpecificMember : Member
{
public SpecificMember()
{
this.Assignments = new HashSet<Assignment>();
this.Expertises = new HashSet<Expertise>();
this.Experiences = new HashSet<Experience>();
}this.VendorInformations = new HashSet<VendorInformation>();
public virtual ICollection<Assignment> Assignments { get; set; }
public virtual ICollection<Expertise> Expertises { get; set; }
public virtual ICollection<Experience> Experiences { get; set; }
public virtual ICollection<VendorInformation> VendorInformations { get; set; }
}
Я действительно хотел бы держаться подальше от размещения еще одной таблицы в базе данных. Моя идея состоит в том, что здесь мы имеем дело только с классами, но я не уверен, как эти две сущности будут работать друг с другом.
Любые идеи о том, как это сделать при использовании Entity Framework или в коде, были бы замечательными. Заранее спасибо.