如何将这些现有表映射到下面的类?
我有以下表格:
CREATE TABLE dbo.UserContact (
UserContactId int NOT NULL IDENTITY (1, 1),
UserId int NOT NULL,
ContactId int NOT NULL,
UserContactTypeId int NOT NULL,
FromDt datetime NULL,
ThruDt datetime NULL,
CreateDt datetime NOT NULL,
UpdateDt datetime NULL,
IsDeleted bit NULL,
CanSolicit bit NOT NULL
)
CREATE TABLE dbo.Contact (
ContactId int NOT NULL IDENTITY (1, 1),
CreateDt datetime NOT NULL,
UpdateDt datetime NULL
)
CREATE TABLE dbo.Electronic (
ContactId int NOT NULL,
URL nvarchar(512) NOT NULL,
ElectronicType smallint NULL
)
CREATE TABLE dbo.Phone (
ContactId int NOT NULL,
AreaCode nchar(3) NOT NULL,
PhoneNb nchar(7) NOT NULL,
Extension nchar(6) NULL,
PhoneType smallint NULL
)
CREATE TABLE dbo.Postal
(
ContactId int NOT NULL,
Street nvarchar(256) NOT NULL,
Specifier nvarchar(256) NULL,
GeocodeId int NULL
)
电子、电话和邮政表格与联系人是一对一的关系。User Contact表是一个多对一的Contact表;UserContact是用户和联系人之间的关联表。
我还有以下课程:
public class Electronic : IntegerKeyEntity
{
public virtual ContactId { get; set; }
public virtual DateTime CreateDt { get; set; }
public virtual DateTime? UpdateDt { get; set; }
public string Url { get; set; }
public ElectronicType Type { get; set; }
}
public class Postal : IntegerKeyEntity
{
public virtual ContactId { get; set; }
public virtual DateTime CreateDt { get; set; }
public virtual DateTime? UpdateDt { get; set; }
public string Street { get; set; }
public string Specifier { get; set; }
public Geocode Geocode { get; set; }
}
public class Phone : IntegerKeyEntity
{
public virtual ContactId { get; set; }
public virtual DateTime CreateDt { get; set; }
public virtual DateTime? UpdateDt { get; set; }
public string AreaCode { get; set; }
public string PhoneNb { get; set; }
public string Extension { get; set; }
public PhoneType Type { get; set; }
}
public class UserContact : IntegerKeyEntity
{
private ICollection<Electronic> electronics = new HashSet<Electronic>();
private ICollection<Phone> phones = new HashSet<Phone>();
private ICollection<Postal> postals = new HashSet<Postal>();
// props
public virtual IEnumerable<Electronic> Electronics { get { return electronics; } }
public virtual IEnumerable<Phone> Phones { get { return phones; } }
public virtual IEnumerable<Postal> Postals { get { return postals; } }
}
那么,我要从四个联系表(父母和孩子)到三个班级吗?另外,如何将这三个类映射到UserContact表。我想我可以有三个IList,每节课一个。