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 have an asp.net dynamic data website .net 3.5 built on ado.net entity framework with mysql database.Currently I have just one table in my entity model.
Everything is working fine on my local machine but when i uploaded on my server i got this error message:
"More than one item in the metadata collection match the identity 'mtDBModelStoreContainer'"
Note that this error happen when i open the table "WebsiteAdmin/users/List.aspx"
select * from MyTable select "MonthName"= case when datepart(month,date1) =1 then 'January' when datepart(month,date1) =2 then 'February' end , count(*) as CountByMonth from venkat group by datepart(month,date1)
Need to figure out the correct way to do a simple SUM function in Linq, but also manipulate one of the feilds coming back by doing a Substring on it, here is the original SQL query:
How can I update an existing LINQ entity? This code gives me: "Cannot insert an entity that already exists." Any better practises on updating/inserting with linq?
foreach (ListViewItem lvi in lvStudents.Items) { HiddenField hfStudentID = lvi.FindControl("hfID") as HiddenField; CheckBox cbPresent = lvi.FindControl("mycb") as CheckBox; int sInt = Int32.Parse(hfStudentID.Value); dc = new DataClassesSODataContext();//I renewed the dc to make sure that wasn't the problem? var currStudent = dc.students.Single(x => x.studentID == sInt); grade g = dc.grades.Single(x => x.subjectID == subjID || x.studentID == sInt); if (g == null) { g = new grade(); g.subject = dc.subjects.Single(x => x.subjectID == subjID); g.student = currStudent; g.present = cbPresent.Checked; dc.grades.InsertOnSubmit(g); } else { g.present = cbPresent.Checked; dc.grades.Attach(g, true);//I tried both attaching and inserting } } dc.SubmitChanges();
When tried to attach the database i created in Visual Web Developer 2008 to SQL management studio i get an operating system error. TITLE: Microsoft SQL Server Management Studio Attach database failed for Server 'SHRAV-DESKTOPSQLEXPRESS'. (Microsoft.SqlServer.Smo) [URL]
ADDITIONAL INFORMATION: An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo) Unable to open the physical file "C:Websites est_1App_Data est.mdf".Operating system error 5: "5(failed to retrieve text for this error. Reason: 15105)". (Microsoft SQL Server, Error: 5120)................
i am using paging technique from this tutorial [URL] and it is working fine, i used asp.net 2.0 with sql server 2005 then i upgraded to visual studio 2008, and converted the asp.net 2.0 application to 3.0 and now using sql server 2008 all the existingpages and .xsd files are working, fine, i can see data in .xsd files when i preview it but i cannot add new stored procedures it gives me an error "An unexpected error has occured" Error message:unexpected error i dont know what it is, already configured dataset (.xsd) works fine, it is just that iam unable to add stored procedures to new datasets my connection string
<add name="jobcon" connectionString="Server=HOME-46CTBUROCXSQLEXPRESS; Database=jobdhundo; User ID=; Password=;Timeout=200; Trusted_Connection=True" providerName="System.Data.SqlClient"/>
it is fine with the entire application there is no coding involved
But the UpdateUser field does not update - it remains at NULL. No errors occur. I can use similar code to update table fields in other dbmls successfully.
I have a method to execute two "Update" sql statements.
The first one works fine and the second one I can't get to work for nothing.
Here is the entire method:
[Code]....
The error I am getting is "Incorrect syntax near '05'."
It is occuring on the next to the last line which is:
dc.ExecuteCommand(sql);
I update the variable "sql" first so I can debug. At the time it crashes the value of sql is:
"Update Blogs set Status = 'Archived', ArchiveDate = 06/22/2010 05:14:46 PM Where (BlogID != 1) and (Status = 'Published') and (AuthorID = 9e37e028-c205-4903-920e-e8643b30a724)"
It appears to be the ArchiveDate that is causing the problem here. The "05" is the hour of the time portion. Both ArcgiveDate and PublishDate are defined exactly the same in the database. If you look at the first dc.ExecuteCommand it does exactly the same thing with PublishDate (DateTime column) in the same table and it works just fine.
Then I modifed the code and remove the ArchiveDate from the sql statement then I get the error:
"Incorrect syntax near 'e028'."
which as you can see is part of the AuthorIDs value in the where clause. So I am assuming both the date and the Guid / Author ID is causing problems. I have tried enclosing the values in quotes but I just cant make this work even though it seems to be working fine in other places.
I even remove the code for the author ID and left in the code for the ArchiveDate and it still does not work so I have proved that both are causing a problem.
I have a table with Id, Name,...IsActive, etc. If user wants to delete a record from the user, he/she should update the field IsActive to false. I am able to acheive this functionality using the below steps,
1. Query the database for the row which is to be updated.
2. Update the property IsActive to false.
3. Submit the changes to the database.
This way i am successful. But i have a query here is that, when we execute steps 1 and 3, there will be two trips to the database for getting the required object and again updating the same object to the database.
Is this not a performance hit having multiple calls to DB for a simple operation.?
Do we have any other go, where in within a single call to database, can i update a field of row?
I am using Linq to SQL. Tables have timestamp columns and I am using regular Linq methodology in ASP.NET MVC.I do use detached entities and always try to do updates without first querying the database for the original entity. To update an entity I use context.Attach(entity, true) followed by context.SubmitChanges() and all is fine. The sql statement that gets executed looks like:
I'm a newbie to this so bear with me. From what I've read online LINQ to Entity should see the relationships without having to specify the joins between multiple tables. I have a relationship that goes across 4 tables Employee, EmployeeDepartmentLink, EmployeeProjectLink, and Project. The idea is an employee can be in multiple departments and work on multiple projects with it being specified which department the employee is in for that project.
This is a C# MVC3 program connecting to a SQL database using VS 2010 Express.
I have no problem with running this query to find employees on a project:
[Code]....
Tring to do the reverse, finding projects that an employee worked on results in an error:
[Code]....
Error message: The specified type member 'EmployeeDepartmentLinks' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported. So I have 2 questions,
1) Why would it work in one direction and not the other? I've played around with it for a couple days with the same results.
2) Does it matter that my primary key and foreign keys are not named the same since all the relationships are connected in SQL? Ex: in Employee (EmployeePK)--(EmployeeFK) in EmployeeDepartmentLink Trying different stuff in LINQPad I was able to get the 2nd query to work if I specified all the joins which I thought was not neccesary with LINQ to Entity. I converted an SQL query that I made on the server into a LINQ query below which works.
If rhcexists.First.SignatureDate > Date.Today.AddMonths(-6) Then End If
rhcexists is a simple query to the Entity Model:
Dim rhcexists = From p In dbContracts.Signatures _ Where p.StudentID = CStr(Session("people_code_id")) _ And p.ContractType = "rhc" _ Order By p.ID Descending _ Select p
Problem is that this comparison results in an error:
LINQ to Entities does not recognize the method 'System.Object get_Item(System.String)' method, and this method cannot be translated into a store expression.
This is occurring on the If clause. Any ideas why this occurring and how I can fix it?
I have a form that gets populated by LINQ and I want to be able to update the database using that same form. The form is populated by grabbing a querystring (for example, "edit=10") and searching the primary key for that record. So far so good. I have a button attached to the function below which is supposed to use LINQ to update the database with data from the form. I get no errors, but for some reason, it is only updating one field (Last_Updated) instead of all of them.
I have a SQL which is running good at SQL Server Mgm studio:
"select d.EmployeeID, CONVERT(VARCHAR(10),d.LogTime,111) as Date1, MIN(CONVERT(VARCHAR(8), d.LogTime, 108)) as FirstIn from LogTable d where d.dwStatus=0 group by d.EmployeeID, CONVERT(VARCHAR(10), d.LogTime,111)"
However, When i put it into my code (Entity SQL):
"select d.EmployeeID, CONVERT(VARCHAR(10),d.LogTime,111) as Date1, MIN(CONVERT(VARCHAR(8), d.LogTime, 108)) as FirstIn from IGPSiteEntities.AccessLogSet AS d where d.dwStatus=0 group by d.EmployeeID, CONVERT(VARCHAR(10), d.LogTime,111)"
I got error :
'CONVERT' cannot be resolved into a valid type of function. Near simple identifier, line1, column 200.
LogTime is a DateTime format e.g 05/05/2010 14:12:12
I want to select ONLY the Date (e.g 05/05/2010) and select ONLY the time (e.g 14:12:12) so i use CONVERT function.