ef-EF一对多,插入子集时怎么设置父级的ID?

问题描述

EF一对多,插入子集时怎么设置父级的ID?

两张表如下,我现在要插入AroundGoods,需要指定AroundShop,但是怎么指定AroundShop的ID?

 public class AroundShop : ShopBase
    {
        public UserInfo User { get; set; }
        public virtual ICollection<AroundGoods> GoodsList { get; set; }
    }  

            public class AroundGoods : GoodsBase
    {
        public AroundShop Shop { get; set; }

    }

        public class AroundShopfiguration : EntityTypeConfiguration<AroundShop>
    {
        public AroundShopfiguration()
        {
            HasMany(d => d.GoodsList).WithRequired(l => l.Shop);
        }
    }

        //我现在这样写就查找不到shop
        List<AroundGoods> list = new List<AroundGoods>();
            for (int i = 0; i < 50; i++)
            {
                list.Add(new AroundGoods { GoodsName = "瓜子" + (i + 1), GoodsPrice = 5 + new Random().Next(0, 4), GoodsIntroduce = "good", GoodsImg = imgarr[i > 24 ? i - 25 : i],
                    Shop = new AroundShop { Id = new Guid("B8A98A53-04FA-E411-BD4C-A9F0B66714A5") } });
            }
            db.AroundGoods.AddRange(list);
            db.SaveChanges();

解决方案

既然是一对多,直接AroundShop.Single(x => x.id == 父id).GoodsList.AddRange(list);
就可以了。

时间: 2024-11-01 19:10:16

ef-EF一对多,插入子集时怎么设置父级的ID?的相关文章

有两种分别用&amp;lt;bgsound&amp;gt;和&amp;lt;embed&amp;gt;&amp;lt;/embed&amp;gt;标签,当用&amp;lt;embed&amp;gt;插入背景音乐时可以设置宽度和高度为0,隐藏播放器。

■ <bgsound>: <bgsound> 是用来插入背景音乐,但只适用于 ie,其参数设定不多.如下 <bgsound src="your.mid" autostart=true loop=infinite> src="your.mid"设定 midi 档案及路径,可以是相对或绝对.autostart=true是否在音乐档下载完之后就自动播放.true 是,false 否 (内定值).loop=infinite是否自动反复播放

解决jquery无法找到其他父级子集问题的方法_jquery

本文为大家分享了jquery无法找到其他父级子集解决方法,供大家参考,具体内容如下方法一:结合php解决错乱问题,给选择项加入class删除class解决 情况:页面中纯在两个相同的子集和相同的父级元素 $(function(){ //删除订单功能 $('.ftTr_delA').live('click',function(){ //获取roid var orid =$(this).attr('orid'); //传递roid ftNum=orid; //修改model-ok的属性 $('.mo

关于有默认值的字段在用EF做插入操作时的思考

原文:关于有默认值的字段在用EF做插入操作时的思考 今天在用EF做插入操作的时候发现数据库中一个datetime类型的字段(CreateDate)的值居然全部为null.于是赶紧看表结构发现CreateDate字段居然是允许为空的. 虽然为空,但是设置了默认值getdate(),按说不应该为null的.于是开始测试. 字段允许Null值的情况 Users表结构如下: 假如一个字段有了默认值,并且又允许为Null,在做插入操作时会发生什么? 如上图中的表结构,CreateDate是允许为null的

关于hibernate 一对多插入数据的问题

问题描述 关于hibernate 一对多插入数据的问题 现在出现了一个问题, 主表和副表通过1对多的关系关联配置,所有的配置都完成了. 在做关联处理时,副表的查询是成功的,但是在对副表进行插入数据的处理时, 数据不能被插入,从打印的日志来看,副表的insert语句都没有被执行, 请问有没有人遇到过这种问题?是什么原因造成的?谢谢 解决方案 Hibernate一对多增删改查 解决方案二: 估计是hibernate配置时cascade的问题,如果是注解的看http://blog.csdn.net/z

mfc sqlite-mfc用w32sqlite插入数据时老是提示SQLITE_ERROR

问题描述 mfc用w32sqlite插入数据时老是提示SQLITE_ERROR mfc用w32sqlite插入数据时老是提示SQLITE_ERROR if(!isopendb){ isopendb=sqlite.Open(_T(""C:Usersdb"")); } sqlite.DirectStatement(sqlstr1); sqlite.DirectStatement(sqlstr2); sqlite.DirectStatement(sqlstr3); sql

在word文档中插入文字时后面的文字消失怎么解决?

  在word文档中插入文字时后面的文字消失怎么解决?          步骤 1.打开所要编辑的文字 2.文章中光标的位置需要输入"在",当我们输入"在"的时候后面的"乌"字消失 3.我们看下工作界面的左下方显示"改写" 4.点击"改写"变成"插入" 5.在"插入"状态下,再次编辑输入"在",此时后面的文字未消失. 6.如果需要变成"改

oracle11g-使用sql语句select插入数据时怎么用行号补0为流水号做完单号保存

问题描述 使用sql语句select插入数据时怎么用行号补0为流水号做完单号保存 使用select语句像某个表中插入数据,表的单号要为该语句的ItemCode的值+5位流水号.流水号的规则是查询出来的"RowNum"的值自动补0为5为流水号.怎么出入,查询数据如图 解决方案 新增一列numerical order 类型为字符串 然后写个方法计算numerical order ,insert进去. 但只用sql语句的话,还没想到. 解决方案二: 试试这个: select itemcode

asp.net数据库连接插入数据时出错,如下:???

问题描述 asp.net数据库连接插入数据时出错,如下:??? string constr = "data source=USER-20141030QL;initial catalog=ASP.net;integrated security=true"; using (SqlConnection con = new SqlConnection(constr)) { string sql = string.Format("Insert into Employees values

jsp-Jsp做界面时怎么设置背景图片和插入图片啊?

问题描述 Jsp做界面时怎么设置背景图片和插入图片啊? 我在用myeclips中的JSP做界面时怎么也插入不了图片,也不知道图片应该放在哪个文件夹下,求指导 解决方案 郁闷,这个编辑器不好使,都乱了!重新排一下. 如果只是单纯的为网页添加背景,就跟制作简单的html和css是一样的.1.添加背景图片,最简单的就是在body标签中添加属性background=""图片路径""或者在body标签内使用内部样式style=""background-im