【发布时间】:2015-10-08 17:49:45
【问题描述】:
我有两个类,例如:
class A {
public virtual ICollection<B> BList { get; set; }
}
class B {
public virtual ICollection<A> AList { get; set; }
}
Entity Framework 然后创建 A 和 B 表以及连接它们的 AB 表。
在我的应用程序中,我得到A_ID 和B_ID,我需要在A 和B 之间建立连接。
我所做的是通过 ID 获取 A,然后通过 ID 获取 B,然后执行 A.BList.Add(BObject),但这是 3 次数据库行程,2 次获取 + 1 次插入。
Entity Framework 中是否有任何方法可以在一次数据库之旅中完成?
更新:
看了Martin提供的链接,写了一个简单的例子:
User user = new User { ID = 12135 };
Book book = new Book { ID = 1};
context.Users.Attach(user);
context.Books.Attach(book);
user.Books.Add(book);
context.SaveChanges();
但是我在user.Books.Add(book); 得到空指针异常user.Books 为null,并且在调用Add 时抛出异常...
【问题讨论】:
-
This 链接显示了仅使用一次(插入)往返的解决方案。
-
我自己看了链接!多么扭曲但合乎逻辑的方式,老实说,我并没有怀疑这样的事情会起作用,令人难以置信。
-
@Aleksa 这些表的主键名称在你的情况下真的被命名为“ID”吗?
-
是的,ID 是两个类的主键。
标签: c# asp.net entity-framework many-to-many