表有2个外键实体框架我有一个由2个外键组成的表。这些只是表的元素。该表旨在创建其他2个表之间的关联。例如:表是Users_Products,只有2列是UserId和ProductID,都是外键。当我从数据库生成EF对象时,它没有创建Users_Products对象,它只是自动创建了导航属性。现在如何使用EF在我的Users_Products表中插入数据?您可以获得一些用户对象并将产品添加到其导航属性中。用户user=context.Users.Where(u=>u.Id==1);产品product=context.Products.Where(p=>p.Id==1);用户。产品。添加(产品);上下文.SaveChanges();有关如何在EF中使用多对多关系的代码示例,请参阅“EntityFramework4.0和ASP.NET-入门”第5部分中的“使用多对多关系”部分。那是EF4.0/数据库优先;有关使用DbContextAPI的示例,请参阅使用实体框架在ASP.NETMVC应用程序中更新相关数据中的将课程分配添加到教师编辑页面(第6步,共10步)。使用(varctx=new...){varuser=newUser();变种产品=新产品();用户。产品。添加(产品);ctx.Users.AddObject(用户);ctx.SaveChanges();如果你想创建一个关系(将记录插入User_Products表),你只需要在用户或产品上使用导航属性:user.Products.Add(product);或产品.Users.Add(用户);这意味着您必须至少在一侧使用导航属性创建关系。如果您已经从当前匹配中加载了实体,则可以使用@Pavel描述的方法。如果你没有加载实体,或者你不想为了建立关系而查询数据库两次,你可以使用这个解决方法:以上是C#学习教程:表有2个外键。很有用,需要多了解C#学习教程,希望大家多多关注——//Makedummyobjectsforrecordsexistinginyourdatabasevaruser=newUser(){Id=1};varproduct=newProduct(){Id=1};//确保您的上下文知道实例并且不会将它们作为新的或修改过的实例进行跟踪context.Users.Attach(user);context.Products.Attach(产品);//再次创建关系并保存更改user.产品。添加(产品);ctx.SaveChanges();本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
