This SqlTransaction has completed; it is no longer usable during Linq to Sql dataContext.SubmitChanges
I seem to have the a similar issue as is cited here, but there are no satisfactory answers on that post - This SqlTransaction has completed; it is no longer usable.
Specifically, I use InsertOnSubmit to insert 100 objects into one of the tables in my data context, and then I call SubmitChanges on the data context. Every once in a while, when I call SubmitChanges, I get the error in the title of this question.
I create a new data context just after the SubmitChanges every 500 records. So my code looks like this:
DataContext writeDataContext = new DataContext(myConnectionString);
List<MyCalculation> calculationsToAdd = new List<MyCalculation>();
foreach (var transaction in transactions)
{
var myCalculation = new MyCalculation { MyTransactionID = transaction.TransactionID, MyValue = transaction.Amount * 2 };
writeDataContext.GetTable<MyCalculation>().InsertOnSubmit(myCalculation);
calculationsToAdd.Add(myCalculation);
contextCounter++;
if (calculationsToAdd.Count == 100)
{
writeDataContext.SubmitChanges();
calculationsToAdd.Clear();
if (contextCounter >= 500)
{
writeDataContext = new DataContext(myConnectionString);
contextCounter = 0;
}
}
}
In another spot I also have seen this error, and what I'm doing there is even simpler - refreshing the data context just after the SubmitChanges every time that I submit changes.
I've looked on the internet, and am not finding anything to help. Any suggestions will be very welcome! Thanks in advance!
linq-to-sql transactions submitchanges
add a comment |
I seem to have the a similar issue as is cited here, but there are no satisfactory answers on that post - This SqlTransaction has completed; it is no longer usable.
Specifically, I use InsertOnSubmit to insert 100 objects into one of the tables in my data context, and then I call SubmitChanges on the data context. Every once in a while, when I call SubmitChanges, I get the error in the title of this question.
I create a new data context just after the SubmitChanges every 500 records. So my code looks like this:
DataContext writeDataContext = new DataContext(myConnectionString);
List<MyCalculation> calculationsToAdd = new List<MyCalculation>();
foreach (var transaction in transactions)
{
var myCalculation = new MyCalculation { MyTransactionID = transaction.TransactionID, MyValue = transaction.Amount * 2 };
writeDataContext.GetTable<MyCalculation>().InsertOnSubmit(myCalculation);
calculationsToAdd.Add(myCalculation);
contextCounter++;
if (calculationsToAdd.Count == 100)
{
writeDataContext.SubmitChanges();
calculationsToAdd.Clear();
if (contextCounter >= 500)
{
writeDataContext = new DataContext(myConnectionString);
contextCounter = 0;
}
}
}
In another spot I also have seen this error, and what I'm doing there is even simpler - refreshing the data context just after the SubmitChanges every time that I submit changes.
I've looked on the internet, and am not finding anything to help. Any suggestions will be very welcome! Thanks in advance!
linq-to-sql transactions submitchanges
add a comment |
I seem to have the a similar issue as is cited here, but there are no satisfactory answers on that post - This SqlTransaction has completed; it is no longer usable.
Specifically, I use InsertOnSubmit to insert 100 objects into one of the tables in my data context, and then I call SubmitChanges on the data context. Every once in a while, when I call SubmitChanges, I get the error in the title of this question.
I create a new data context just after the SubmitChanges every 500 records. So my code looks like this:
DataContext writeDataContext = new DataContext(myConnectionString);
List<MyCalculation> calculationsToAdd = new List<MyCalculation>();
foreach (var transaction in transactions)
{
var myCalculation = new MyCalculation { MyTransactionID = transaction.TransactionID, MyValue = transaction.Amount * 2 };
writeDataContext.GetTable<MyCalculation>().InsertOnSubmit(myCalculation);
calculationsToAdd.Add(myCalculation);
contextCounter++;
if (calculationsToAdd.Count == 100)
{
writeDataContext.SubmitChanges();
calculationsToAdd.Clear();
if (contextCounter >= 500)
{
writeDataContext = new DataContext(myConnectionString);
contextCounter = 0;
}
}
}
In another spot I also have seen this error, and what I'm doing there is even simpler - refreshing the data context just after the SubmitChanges every time that I submit changes.
I've looked on the internet, and am not finding anything to help. Any suggestions will be very welcome! Thanks in advance!
linq-to-sql transactions submitchanges
I seem to have the a similar issue as is cited here, but there are no satisfactory answers on that post - This SqlTransaction has completed; it is no longer usable.
Specifically, I use InsertOnSubmit to insert 100 objects into one of the tables in my data context, and then I call SubmitChanges on the data context. Every once in a while, when I call SubmitChanges, I get the error in the title of this question.
I create a new data context just after the SubmitChanges every 500 records. So my code looks like this:
DataContext writeDataContext = new DataContext(myConnectionString);
List<MyCalculation> calculationsToAdd = new List<MyCalculation>();
foreach (var transaction in transactions)
{
var myCalculation = new MyCalculation { MyTransactionID = transaction.TransactionID, MyValue = transaction.Amount * 2 };
writeDataContext.GetTable<MyCalculation>().InsertOnSubmit(myCalculation);
calculationsToAdd.Add(myCalculation);
contextCounter++;
if (calculationsToAdd.Count == 100)
{
writeDataContext.SubmitChanges();
calculationsToAdd.Clear();
if (contextCounter >= 500)
{
writeDataContext = new DataContext(myConnectionString);
contextCounter = 0;
}
}
}
In another spot I also have seen this error, and what I'm doing there is even simpler - refreshing the data context just after the SubmitChanges every time that I submit changes.
I've looked on the internet, and am not finding anything to help. Any suggestions will be very welcome! Thanks in advance!
linq-to-sql transactions submitchanges
linq-to-sql transactions submitchanges
edited Nov 21 '18 at 17:50
user756366
asked Nov 21 '18 at 17:44
user756366user756366
124113
124113
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53417826%2fthis-sqltransaction-has-completed-it-is-no-longer-usable-during-linq-to-sql-dat%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53417826%2fthis-sqltransaction-has-completed-it-is-no-longer-usable-during-linq-to-sql-dat%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown