在多对多关系中,我想保持 Playlist
的顺序这是 Media
的集合对于 Channel
.该序列将是一个从 0 到 int max 的 int 字段。
public class Channel
{
public int ChannelId {get; set;}
public string Name {get; set;}
public ICollection<Media> Playlist {get; set;}
}
public class Media
{
public int MediaId {get; set;}
public string Name {get; set;}
public string Location {get; set;}
public ICollection<Channel> Channels {get; set;}
}
首先使用实体框架代码我想设计
Channel
之间的多对多关系和 Media
使Channel
会有 Playlist
媒体类型的项目,并维护订单顺序。Entity Framework 将添加一个表
ChannelMedias
对于与以下模式的这种关系ChannelMedias
-----------------------------
Channel_ChannelId (int)
Media_MediaId (int)
我如何维护这样的序列顺序:
ChannelMedias
------------------------------
Channel_ChannelId (int)
Media_MediaId (int)
MediaSequence (int)
最佳答案
默认 Entity Framework 不支持它。您需要再定义一个实体(ChanalMedia)来表示这种关系。
public class Channel
{
public int ChannelId {get; set;}
public string Name {get; set;}
public ICollection<ChanalMedia> ChanalMedias{get; set;}
}
public class ChanalMedia{
public Channel Channel {get; set;}
public Media Media {get; set;}
//additional fields here..
}
public class Media
{
public int MediaId {get; set;}
public string Name {get; set;}
public string Location {get; set;}
public ICollection<ChanalMedia> ChanalMedias{get; set;}
}
关于entity-framework - Entity Framework 代码优先,自定义,多对多关系中的附加字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10695726/