Ich habe eine Klasse, die eine Verbindung von einer Seite und einem Tag darstellen und es sieht mehr oder weniger wie folgt aus:Entity Framework - Zuordnen eine Klasse in zwei Tabellen mit vielen zu einer Beziehung
public class TagLink {
[Key]
public int Id { get; set; }
public int PageId { get; set; }
public int TagId { get; set; }
public string TagName { get; set; }
}
In meiner Datenbank Ich hätte gerne 2 Tabellen: TagLinks
und TagNames
. Erste mit Id
, PageId
und TagId
und die zweite mit TagId
und TagName
.
Ich möchte, dass die Tag-ID ein Fremdschlüssel ist, so dass viele Tag-Links einem einzelnen Tag-Namen zugewiesen werden können.
Ich habe es mit EntityTypeConfiguration
versucht, aber ich weiß nicht, wie man es richtig konfiguriert. Es gibt mir falsch Fremdschlüssel, die wie folgt aufgebaut sind:
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]
ich damit begann:
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");
});
}
}
Wie kann ich es auf eine Beziehung mit vielen funktioniert? Ich denke, die Fremdschlüssel sollte auf TagLinks
Tabelle hinzugefügt werden TagId
in TagNames
Tabelle verweisen
@mjwills Ich habe meine Frage bearbeitet und geschrieben, was in der Datenbank generiert wird – krajol