ADO.NET :: Error - Key Already Exists In The ObjectStateManager
Feb 17, 2011
I have a property object that has many activities associated to it. I want to delete all the activities and then add specific ones back in. I am doing this all before the objectcontext save. I am using multiple objectcontexts and attaching/detaching the objects. I am getting the property from the propertyreository objectcontext which is the primary context. Then I get the user which takes a bool to determine if I want to detach from the userrepository object context. I attach to the propertyrepository.
All is good but when I remove all the activities from the property object (entityobject) and then try to attach the activity that I retrieve from the database I get the error: key already exists in the ObjectStateManager Error. When I remove all the activity entity objects from the property entity object they are not really deleted from the objectcontext or the database until I use the save() on the objectcontext which will change all the entity object statuses. How then after I remove the activity do i add it back to the property.Activities?
I need find out all objects CmsAdvSlot connected with a CmsMasterPage (it is working in my code posted belove), and DELETE the result (CmsAdvSlot) from the DataBase. My Problem is I am not able to DELETE this Objects when I found theme.
Error: The object cannot be deleted because it was not found in the ObjectStateManager.
int findMasterPageId = Convert.ToInt32(uxMasterPagesListSelector.SelectedValue); CmsMasterPage myMasterPage = context.CmsMasterPages.FirstOrDefault(x => x.MasterPageId == findMasterPageId); var resultAdvSlots = myMasterPage.CmsAdvSlots; // It is working until here foreach (var toDeleteAdv in resultAdvSlots) { context.DeleteObject(myMasterPage.CmsAdvSlots.Any()); // ERORR HERE!! context.SaveChanges(); }
The type sp.DBOperations' exists in both c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files ootaf585a885de14bd0assemblydl3966aa64b5c4f1868_c3eeca01sp.DLL' and 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files ootaf585a885de14bd0App_Code.m9kl32ja.dll'
I would like to check whether a folder exists or not if not create. I'm sure this folder exists, but for some reason I get "false" when I check with "Exists" method.
The only reason I think could be because of the W: drive? I moved this application to production site and even there it returns false.
while I'm type in Windows explorer on my localhost and on the server "W:/Webs/ASPPages/cropper/uploads" it opens this folder. So my localhost and IIS server has W: mapping.
for test I tried to create the folder then it says can't find the path...
userFolderName = @"W:/Webs/ASPPages/cropper/uploads" //I also tried @"W:WebsASPPagescropperuploads" //I also tried @"W:WebsASPPagescropperuploads" //I also tried "W:\Webs\ASPPages\cropper\uploads" DirectoryInfo dirInfo = new DirectoryInfo(userFolderName);........
I am using VS 2010 with an ASP.Net web application (FW: 3.5). When I run the app in VS, I get the following message:
c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oote7d09027703efd1App_Web_commandmodule.aspx.98f065d9.hwdz-ui2.0.cs(150): error CS0433: The type 'ASP.commandmodule_command_master' exists in both 'c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oote7d09027703efd1App_Web_command.master.98f065d9.5f4zhfs0.dll' and 'c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oote7d09027703efd1App_Web_ltl_wu4_.dll'
I have deleted the temporary files/folders and as soon as I run the app, I get the same message and the files reappear. This is a show stopper and I do not know where to turn. I have searched the web, but the only thing I found was suggestion to delete the folders, which did not work.
I've just gone thru a large-ish project and renamed A LOT of namespace directives. Everything works fine on my developer box - deploy it to stage and I get:
Compiler Error Message: CS0433: The type 'ASP.usercontrols_pageheader_ascx' exists in both 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oot89252a5f7305b927App_Web_hodsbmv3.dll' and ' c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oot89252a5f7305b927App_Web_pageheader.ascx.6bb32623.bs4iljip.dll'
Yuck. Very similar to this: Deployment Project dlls cause 'type x exists in both' errors, but must be coming from a different cause.
I have none of the problems I've seen mentioned in other articles (App_Code / CodeFile directive). Worked out why it works on my machine: the website has no problem when it is in a vdir. If I remove the "PageHeader" usercontrol from the masterpage it lives on everthing is fine. If I rename "PageHeader" everything is fine. Updated: renaming the usercontrol doesn't help.
I'd had a look at the assemblies mentioned in the error in reflector; App_Web_hodsbmv3.dll contains dynamic classes for all the usercontrols in my project. App_Web_pageheader.ascx.6bb32623.bs4iljip.dll' contains the same code just for the PageHeader usercontrol. Why would ASPX decide to create the same class in two assemblies?
I just upgraded my blog [URL] to BlogEngine 1.6.1 (from 1.6.0) in order to use the reCaptcha extension. I upgraded my local code from 1.6.0 to 1.6.1, then published via FTP through WebMatrix. After the upgrade, I am getting this error:
Compiler Error Message: CS0433: The type 'Resources.labels' exists in both 'c:windowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oot9fd92f8745a2ba06assemblydl3a64307f6f14811b8_0291cb01App_GlobalResources.DLL' and 'c:windowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oot9fd92f8745a2ba06App_GlobalResources.md7pit6m.dll'
The source file and line number where it breaks varies, but it is always the same basic message. What differs is the "md7pt66m" section of the App_GlobalResources.md7pit6m.dll (the second file path in the error message). I was able to fix the error locally by deleting the Temporary ASP.NET Files, but I can't do this on my hosting server (GoDaddy). Is there something I can do to fix the error? Based on suggestions from the codeplex discussion page, I have edited web.config file in order to cycle the app pool, and renamed BlogEngine.Core.dll to BlogEngine.Core2.dll and then back in order to restart the blog. I have also added batch="false" to the <compilation> tag in web.config (based on this post). I have turned custom errors off, so you can see the error on my site now.
I have a "simple" method that takes a Linq entity containing the information I want to update. The method then creates a list of counties the information is to be updated for, and tries to update the information for each county.
So user goes in fills form out selects update All counties, and the information in the form should be updated for all the counties for the member. Here is the code.
[Code]....
The first pass through the foreach runs perfectly, the second time through I get an error: Cannot attach an entity that already exists.
What is best way to work around this?
I have though about putting the foreach loop in my business_logic layer, and have it pass both the newRecord and OldRecord, but figured I would ask, before making the code change.
I will try and be brief, I am finding when trying to create a custom route with a name and url of properties that my ASP.NET MVC app is returning a 404 file not found when hitting the route.I have deduced this down to most likely be caused by the fact I have a folder on disk called Properties which is of course a common asp.net folder which is automatically created. I have found someone else who has suffered from this problem on SO, but looks like there has been no resolution, only to name your route something different!
Surely this is an oversight, or there must be a workaround? Obviously there will be many common directories you may need as routes and/or folders interchangeably, some of which we already know like Properties probably can't be deleted! I also understand we need to honor real folders as URLs too, but I feel routing should take priority before looking at folders on disk.
Solution,I had also moved ashx and asmx files at the same time as this. The Class attribute of the WebService/WebHandler directives were pointed at the wrong namespace. The moral of the story is to make sure you view the markup for all as*x files you change the namespace for by right-clicking on them and choosing "View Markup".
I'm experiencing the same problem as in this question and this link, but none of the answers fixed my problem. (edit: Setting the web.config batch attribute works, but that's a coverup, not a solution)
The problem I'm having is with a User Control that I moved from the root directory to a subdirectory within the same Web Application project. It used to work fine before I moved it. When I moved it it started giving me the error message.
It's saying that the class name exists in two dll files in Temporary ASP.NET Files. Sure enough, when I open Reflector, it's in two dlls.
If I rename the class and ascx file, everything works fine. No usages of the original name exist within any of the files in my entire application. When I rename the file, I opened all of the dll files in Temporary ASP.NET Files with Reflector, and no references to the original class name exists.
So where's this phantom reference coming from how can I fix this?
Edit: I literally grepped every file in my working directory for the solution and my temp directory for the old class name and deleted every file that contained it. I then renamed back to the original, broken name and I still get the error.
Server Error in '/' Application.
Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following
specific error details and modify your source code appropriately.
Compiler Error ssage: CS0433: The type 'ASP.dashboard_badusercontrol_ascx exists in both 'c:Docunts and SettingsmeLocal SettingsTempTemporary ASP.NET Files oot3c2b7e1f2e8a7620App_Web_badusercontrol.ascx.a57ad085.iljdmp1p.dll' and 'c:Docunts and SettingsmeLocal SettingsTempTemporary ASP.NET Files oot3c2b7e1f2e8a7620App_Web_bhdqaimy.dll'
Source Error:
Line 1098: Line 1099: [System.Diagnostics.DebuggerNonUserCodeAttribute()] Line 1100: private[code].....
Edit:Ok, so I did some more testing on what works and doesn't work.Let's say the original file name was "BadUserControl.ascx" in namespace "MyNamespace".
I moved the file to a directory called "NewDirectory" and changed the namespace to "MyNamespace.NewDirectory". There are no copies of "BadUserControl.ascx" anywhere else on my HDD. I double-checked my TFS history to ensure the ONLY difference is the addition of ".NewDirectory" to the namespace in the markup and code-behind files.
Inside of this namespace are two other user controls named "OtherUserControl" and "AnotherUserControl".
This situation fails: I have 2 Register directives:
These situations work: 1) I keep "BadUserControl.ascx" named as is. I have 1 Register directive on a page in the same namespace: <%@ Register src="BadUserControl.ascx" tagname="BadUserControl" tagprefix="uc1" %>
2) I change "BadUserControl.ascx" to "GoodUserControl.ascx" I have 2 Register directives: <%@ Register src="GoodUserControl.ascx" tagname="GoodUserControl" tagprefix="uc1" %> <%@ Register src="OtherUserControl.ascx" tagname="OtherUserControl" tagprefix="uc2" %>
3) 2 Register directives without BadUserControl.ascx at all: <%@ Register src="AnotherUserControl.ascx" tagname="AnotherUserControl" tagprefix="uc1" %> <%@ Register src="OtherUserControl.ascx" tagname="OtherUserControl" tagprefix="uc2" %>
I have a nested GridView with id grd_inner. i have to find a linkbutton in template field of grd_inner and add some attributes to it. but its giving me error.
I am trying to add Failed Request Tracing to my IIS 7/ASP.NET server.
First, I create failed request tracing for "all content, error codes 400-999" because want to save all errors.
Then, I try to create a trace for "all content, time: 5 seconds" because I want to trace all "long" requests. However, IIS 7 gives me an error: "A failed request trace for this content already exists".How can I add this second trace for all content that takes > 5 seconds?
I tried to illustrate the problem by providing the following instructions, unfortunately the data was deleted and the example failed. It is now working. I have been working through one of Scott Mitchells ASP.NET Application Tutorials Title "Using TemplateFields in the GridView Control"
The URL is ...
The example demonstrates a temporary field being used in different ways, one of which involves dates in a Calender. If the HireDate in the example is deleted or not available the program fails. Providing the date is a valid date it works fine....
I added a new directory and page to my website. when I try to browse to this new page I get redirect to my Default.aspx page with ?aspxerrorpath= appended to the query string.IIS shows the page is visible. The page is there. Why would I not be able to access this page?
Here's the case I created this Permias.mdf on another solution that I had and then after that I decided not to use that solution and created a new website from visual studio and copy and paste the .mdf file to be used for this website.
Database 'C:\Permias.mdf' already exists. Choose a different database name.
i am building a project using C# Asp.Net in which i am registering users with a user id, now my question is that how to check that the user id is already exists in the user table or not when user trying to register, i am using sql server 2000?