當我想用子實體更新對象時,我得到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