次のシナリオがあります。
public class Person
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public ICollection<PhoneNumber> PhoneNumbers { get; set; }
}
public class PhoneNumber
{
public int Id { get; set; }
public string Number { get; set; }
public string Type { get; set; }
}
これは、次のようなデータベース内のスキーマと一致する必要があります。
CREATE TABLE [dbo].[Contacts]
(
[ContactId] NVARCHAR(50) NOT NULL,
[FirstName] NVARCHAR(150) NOT NULL,
[LastName] NVARCHAR(150) NOT NULL
)
CREATE TABLE [dbo].[PhoneNumbers]
(
[PhoneNumberId] INT IDENTITY(1,1) NOT NULL,
[ContactId] NVARCHAR(50) NOT NULL,
[PhoneNumber] NVARCHAR(20) NOT NULL,
[Type] NVARCHAR(1000) NOT NULL
)
また、EntityTypeConfigurationを実装する2つのクラスもあります。
public class PhoneNumberConfiguration : EntityTypeConfiguration<PhoneNumber>
{
public PhoneNumberConfiguration()
{
ToTable(TableName);
Property(e => e.Id).HasColumnName("PhoneNumberId");
Property(e => e.Value).HasColumnName("PhoneNumber");
Property(e => e.PhoneType).HasColumnName("Type");
}
}
public class ContactConfiguration : EntityTypeConfiguration<Person>
{
public ContactConfiguration()
{
ToTable("Contacts");
Property(contact => contact.Id)
.HasColumnName("ContactId");
}
}
これから、EF 4.3の流暢なAPIを使用して、電話番号と個人の間の外部キーがContactIdというフィールドに格納されている電話番号テーブルにあることを指定できますか?
ありがとう