当我想用子实体更新对象时,我得到System.NotSupportedException: An attempt has been made to Attach or Add an entity that is not new perhaps having been loaded from another DataContext
。更新导致System.NotSupportedException的LINQ to SQL对象
的情况是这样的:
我有一个SubscriberProvider,让我来创建用户。
var provider = new SubscriberProvider(); // Creates a new repository with own datacontext
var newSubscriber = new Subscriber
{
EmailAddress = emailAddress,
};
newSubscriber.Interests.Add(new Interest{
Id=1,
Name="cars"
});
provider.Subscribe(newSubscriber);
在正常的订阅页面上,这工作正常。
现在我有一个LINQ2SQL成员类(由MemberRepository检索),我希望把它扩大到具有助手认购方法如下所示:
var repository = new MembershipRepository(); // Holds its own datacontext
var member = repository.Get("member1");
member.Subscribe(); // transfer member's info and interests to subscriber's table
时SubscriberProvider尝试添加的利益发生异常会员。 注释掉
newSubscriber.Interests.Add(new Interest{
Id=1,
Name="cars"
});
会使member.Subscribe()工作。
member.Subscribe()仅仅是:
public void Subscribe(bool emailIsVerified, bool receiveEmails, bool sendDoubleOptIn)
{
var provider = new MailingListProvider();
provider.Subscribe(EmailAddress, emailIsVerified, receiveEmails, CountryId, sendDoubleOptIn, ConvertInterests(MemberInterests.ToList()));
}
那么是什么导致子实体(权益)失去他们的datacontext,当我做member.Subscribe()和我怎么去解决这个?
显示'member.Subscribe'的代码 – 2010-01-06 17:14:04
按要求添加 – zulkamal 2010-01-07 13:50:01