我有代表一個頁面和標籤的連接的一類,它看起來或多或少是這樣的:實體框架 - 一個類映射到與多兩個表一個關係
public class TagLink {
[Key]
public int Id { get; set; }
public int PageId { get; set; }
public int TagId { get; set; }
public string TagName { get; set; }
}
在我的數據庫我想有2個表格:TagLinks
和TagNames
。第一個是Id
,PageId
和TagId
,第二個是TagId
和TagName
。
我希望標籤id是一個外鍵,所以很多標籤鏈接可以分配給一個標籤名稱。我試過但我不知道如何正確配置。它給了我這是建立這樣的錯誤外鍵:
ALTER TABLE [dbo].[TagNames] WITH CHECK ADD CONSTRAINT [FK_dbo.TagNames_dbo.TagLinks_TagId] FOREIGN KEY([TagId])
REFERENCES [dbo].[TagLinks] ([TagId]);
ALTER TABLE [dbo].[TagNames] CHECK CONSTRAINT [FK_dbo.TagNames_dbo.TagLinks_TagId]
我開始了與此:
public class TagLinkEntityConfiguration : EntityTypeConfiguration<TagLink>
{
public TagLinkEntityConfiguration()
{
HasKey(e => e.Id);
HasKey(e => e.TagId);
Property(e => e.Id).HasColumnName(nameof(TagLink.Id));
Property(e => e.PageId).HasColumnName(nameof(TagLink.PageId));
Property(e => e.TagId).HasColumnName(nameof(TagLink.TagId));
Property(e => e.TagName).HasColumnName(nameof(TagLink.TagName));
Map(m =>
{
m.Properties(e => new
{
e.Id,
e.PageId,
e.TagId
});
m.ToTable("TagLinks");
});
Map(m =>
{
m.Properties(e => new
{
e.TagId,
e.TagName
});
m.ToTable("TagNames");
});
}
}
如何使它與許多工作,以一對一的關係?我想外鍵應該TagLinks
表被添加到引用TagId
在TagNames
表
@mjwills我編輯了我的問題併發布了數據庫中生成的內容 – krajol