首页 新闻 搜索 专区 学院

求教一个Fluent API的问题

0
悬赏园豆:5 [已解决问题] 解决于 2014-12-31 08:48

现有一个菜单表:

模型代码:

public class MMenu : Entity
{
    /// <summary>
    /// 菜单编码
    /// </summary>
    public string Code { get; set; }

    /// <summary>
    /// 菜单名称
    /// </summary>
    public string Title { get; set; }

    /// <summary>
    /// 菜单图标
    /// </summary>
    public string Icon { get; set; }


    /// <summary>
    /// 菜单链接
    /// </summary>
    public string NavigateUrl { get; set; }

    /// <summary>
    /// 子菜单集合
    /// </summary>
    public virtual ICollection<MMenu> Children { get; set; }

    /// <summary>
    /// 父菜单
    /// </summary>
    public virtual MMenu Parent { get; set; }
}
View Code

我使用下面的Fluent API

public MMenuTypeConfiguration()
{
    HasMany(n => n.Children).WithOptional(n => n.Parent).Map(n => n.MapKey("ParentID"));
}
View Code

发现表里面的ParentID总是被弄成外键了,导致表里面无数据的情况下,插入不进去任何数据。

求教各位应该怎么写?  

Kevin.Choi的主页 Kevin.Choi | 初学一级 | 园豆:3
提问于:2014-12-30 22:47
< >
分享
最佳答案
0

WithOptional的话 应该是可空的外键吧?  为什么会加不进去呢

收获园豆:5
mushishi | 菜鸟二级 |园豆:230 | 2014-12-31 00:14

你的MMenu没有设置主键   我按照你的写了  插入一个跟菜单都是可以的  

   控制台代码:
using(var context=new MenuContext())
           {
               MMenu menu = new MMenu { 
                 Code="1",
                  Title="firstmenu",
                  Icon="aaa",
                  NavigateUrl="",
                  Parent=null,
                 Children=null
               };
               context.Menus.Add(menu);
               context.SaveChanges();
           }

部分dbcontext代码:
       [Key] // 这个很重要
        /// <summary>
        /// 菜单编码
        /// </summary>
        public string Code { get; set; }

mushishi | 园豆:230 (菜鸟二级) | 2014-12-31 00:30

@mushishi: 主键在基类上。谢谢。

Kevin.Choi | 园豆:3 (初学一级) | 2014-12-31 08:47

@Kevin.Choi:  哦嘎  那你的问题搞定了么? 

mushishi | 园豆:230 (菜鸟二级) | 2014-12-31 16:28

@mushishi: 已搞定,就是这个外键太扎眼了,适应CF还需要一段时间。

Kevin.Choi | 园豆:3 (初学一级) | 2014-12-31 16:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册