我正在建模音樂曲目和專輯,其中專輯有很多曲目,曲目只能放在一張專輯上,連接表指定它在專輯列表中的位置。EF5 Code First Fluent EntityTypeConfiguration用於曲目和專輯模型
這裏是我的模型:
public class Track
{
public int Id { get; set; }
public string Name { get; set; }
public int AlbumTrackId { get; set; }
public virtual AlbumTrack AlbumTrack { get; set; }
}
public class Album
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<AlbumTrack> AlbumTracks { get; set; }
}
public class AlbumTrack
{
public int AlbumId { get; set; }
public virtual Album Album { get; set; }
public int TrackId { get; set; }
public virtual Track Track { get; set; }
public int Position { get; set; }
}
和我EntityTypeConfiguration
public class AlbumTrackConfiguration : EntityTypeConfiguration<AlbumTrack>
{
public AlbumTrackConfiguration()
{
// AlbumTrack has a composite key
HasKey(at => new {at.AlbumId, at.TrackId});
// AlbumTrack has one Album, Albums have many AlbumTracks
HasRequired(at => at.Album)
.WithMany(a => a.AlbumTracks)
.HasForeignKey(at => at.AlbumId)
.WillCascadeOnDelete(true);
// AlbumTrack has one Track, Tracks have one AlbumTrack
HasRequired(at => at.Track)
.WithRequiredPrincipal(t=>t.AlbumTrack)
.WillCascadeOnDelete(true);
}
}
的一個相冊之間一對多的關係AlbumTracks是好的,但除了預期
[AlbumTrackId] [int] NOT NULL,
Code First不斷添加
[AlbumTrack_AlbumId] [int] NOT NULL,
[AlbumTrack_TrackId] [int] NOT NULL
到曲目表。
如何更好地建立跟蹤到專輯跟蹤的關係,以便只有指定的屬性可以在數據庫字段中轉換?
[是,在我的世界的軌道,只能存在於一個單一的專輯!]
感謝。
感謝@NSGaga,這說明它非常好非常完整的答案! – SeanR
不客氣肖恩 – NSGaga