ASP.NET MVC EntityFramework多对多关系中间表如何加字段,小白求指教

maxcatdark 2014-04-14 09:05:18
ASP.NET MVC EntityFramework中现有一个多对多关系,想要实现在多对多的中间表上加字段sort排序字段,但是不知道怎么加,

2个实体为
public class Column
{
//序号
public int ID { get; set; }
//栏目编号
public int Col_ID { get; set; }
//栏目名称
public int Col_Name { get; set; }
//父栏目编号
public int FatherCol { get; set; }
//层次
public int Lvl { get; set; }
//排序
public int SortBy { get; set; }
//状态
public int State { get; set; }
public virtual ICollection<FilterCategory> FilterCategorys { get; set; }
}

public class FilterCategory
{
//序号
public int ID { get; set; }
//筛选类别编号
public int Fc_ID { get; set; }
//筛选类别名称
public int Fc_Name { get; set; }
//状态
public int State { get; set; }
public virtual ICollection<Column> Columns { get; set; }
}


对应的map为


public class ColumnMap : EntityTypeConfiguration<Column>
{
public ColumnMap()
{
// Primary Key
this.HasKey(t => t.ID);

// Table & Column Mappings
this.ToTable("Columns");
}
}

public class FilterCategoryMap : EntityTypeConfiguration<FilterCategory>
{
public FilterCategoryMap()
{

// Primary Key
this.HasKey(t => t.ID);

// Table & Column Mappings
this.ToTable("FilterCategorys");

// Relationships
this.HasMany(t => t.Columns)
.WithMany(t => t.FilterCategorys)
.Map(m =>
{
m.ToTable("Columns_FilterCategorys");
m.MapLeftKey("Col_ID");
m.MapRightKey("Fc_ID");
});
}
}



对应的dbcontext是这个样子的

public class Context :DbContext
{
public DbSet<Column> Columns { get; set; }
public DbSet<FilterCategory> FilterCategorys { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//Add entity configurations in a structured way using 'TypeConfiguration’ classes
modelBuilder.Configurations.Add(new ColumnMap());
modelBuilder.Configurations.Add(new FilterCategoryMap());

}
}


就是想要实现中间表是这个样子的
    public class Column_FilterCategory
{
//public int ID { get; set; }
//栏目编号
public int Col_ID { get; set; }
//筛选类别编号
public int Fc_ID { get; set; }
//排序
public int Sort { get; set; }
}



而且假设实现之后,读取又怎么办,用lamda如何读取这样的排序?正常使用好像只有include()这样的,就排不到中间表

还是只能用sql语句实现或者用linq拼出?小白求指教
...全文
600 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
maxcatdark 2014-04-29
  • 打赏
  • 举报
回复
虽然分少了点 都没人来jf 唉
maxcatdark 2014-04-29
  • 打赏
  • 举报
回复
自己想到解决办法了 建3个表 A,B,C A与B一对多 C与B一对多 理论上如此 之前一直不知道怎么弄最后换了实现方式 结贴..
maxcatdark 2014-04-16
  • 打赏
  • 举报
回复
引用 1 楼 q107770540 的回复:
如果A表和B表是多对多关系,并且设置好了主外键关系,在代码中可以直接通过A的对象点出它的从表B的数据集
现在的需求就是想要点出A和B的中间表来,以及用code first的方式在中间表加字段
q107770540 2014-04-15
  • 打赏
  • 举报
回复
如果A表和B表是多对多关系,并且设置好了主外键关系,在代码中可以直接通过A的对象点出它的从表B的数据集

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧