我有以下情况:
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 的类。
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 的 fluent API 来指定电话号码和人员之间的外键位于存储在名为 ContactId 的字段中的电话号码表中吗?
谢谢