Link to home
Start Free TrialLog in
Avatar of carled
carledFlag for United Kingdom of Great Britain and Northern Ireland

asked on

Simply take a row from one datacontext and write it to an identical database table in another datacontext

This worked until a few days ago on my test system, I don't know what circumstances changed but what am I doing wrong please?

I have two databases on my sql server. One is the master database and holds a single row (with 25 columns) per item stored.  I have a duplicate table on a separate database on the same server that I use like an archive.

In my code behind, I set up two datacontexts, one pointing to the master database table and one (that uses a different connection string on creation) that points to the archive database table. This all works fine and both datacontexts are available and working.

I then read a single row from masterdatacontext into an entity called, say, "masterRec" and then try and do an "insertonsubmit" on the archive datacontext using the whole "masterRec" I've read.  I don't want to have to specify each individual column in the write as this is hideously inefficient and long-winded.

This all worked fine for a week or two, but today it doesn't work. There is an exception about trying to attach an invalid datacontext or something?

All I want to do is read from one datacontext and write the whole row in one go to the archive datacontext. That's not too much to ask is it?
Avatar of Bob Learned
Bob Learned
Flag of United States of America image

1) I don't know LINQ that well to answer your question as is.

2) This question has been open for a while, without response.

3) I like questions that challenge me to find an answer for things that I don't understand.

4) I would like to help you, but it might be easier if you show me what you have tried, and what has failed (exact exceptions).
Avatar of carled

ASKER

In a nutshell in pseudo-code:

dim altConnString as string = "alternative db connection string"
dim dc1 as db1datacontext = new db1datacontext (default data context)
dim dc2 as db2datacontext = new db1datacontext(altConnString) (same datacontext, different connection string)

dim dc1Rec = (from dc1.table1 where x=y select).firstordefault
if (not dc1Rec is nothing) then
    dc2.table1.insertOnSubmit(dc1Rec)
    dc2.submitChanges()
end if

Like I say, this worked a week or so back as I got data onto the second database, but whether that was a peculiarity of connection strings or something, I don't know, as the above code now generates:
"An attempt has been made to Attach or Add an entity that is not new, perhaps having been loaded from another DataContext. This is not supported."
ASKER CERTIFIED SOLUTION
Avatar of Bob Learned
Bob Learned
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial