entity-framework - Entity Framework - 添加以仅使用外键值连接

标签 entity-framework entity-framework-4

好的,我有 3 个表,称它们为:

  • 个人ID
  • 姓名

商店

  • 商店编号
  • 姓名

个人存储

  • 个人ID
  • 商店编号

现在,我有一个表单可以让您为某人添加商店。但是,我正在从表单中取回商店 ID。我真的不想查询以从 Entity Framework 中获取商店对象。我只想使用我拥有的 StoreID 和 Person 对象添加到表中。

最佳答案

默认情况下,在 EF 中,此连接表不会显示为实体,而是您将获得多对多关系,该关系将显示为两个导航属性

Person.Stores
Store.People

如果您想在不检索实体的情况下建立多对多关系,那么附加 stub 实体是最好的方法。

var person = // you already have the person
var store = new Store{StoreID = 5} // you know the storeID

ctx.AttachTo("Stores", store);
ctx.AttachTo("People", person); // assuming the person isn't already attached
person.Stores.Add(store);
ctx.SaveChanges();

此代码的唯一问题是如果关系已经存在,它将失败,因此您需要确保正在创建一个关系

有关使用此类 stub 实体的更多信息,请查看 my post . 希望这会有所帮助。

亚历克斯

从 OP 编辑​​:

因为我使用的是 EF4,所以我使用以下代码从附件中删除字符串(感谢链接中的提示 13)。

var person = // you already have the person
var store = new Store{StoreID = 5} // you know the storeID

ctx.Stores.Attach(store);
person.Stores.Add(store);
ctx.SaveChanges();

关于entity-framework - Entity Framework - 添加以仅使用外键值连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3779354/

相关文章:

c# - 如何忽略 EF 4.3 迁移中的表/类

entity-framework - 无法检查 Entity Framework CTP5 模型兼容性,因为数据库不包含模型元数据

c# - Entity Framework 本身引用 -> 父/子

c# - 'System.Data.Entity.Migrations.DbMigrationsConfiguration` 1' 的类型初始值设定项抛出异常

asp.net - 在 Entity Framework 中删除对象时的并发性

c# - EntityFramework 在现实生活中如何与 C# 一起使用?

asp.net-mvc - 如何在 EF 中处理子级更新

c# - 如何使用匿名对象创建动态 Linq Select 表达式

c# - 在新实体中加载导航属性的最佳方法

C# 应用程序到 MS SQL 数据库调用堆栈