DataSource Controls :: Error 3033 : Their Primary Keys May Collide
Jan 15, 2010
I have started my new mvc project with entity framework,Must say it is very diffcult to work with entity framework.
"I am trying to create new custom entity in .edmx file,Now i have made one column as Entity key,Which is already entity key another entity set."
"Error 3033: Problem in Mapping Fragment starting at line 3081: EntitySets 'Entityset name' and 'Entityset name' are both mapped to table 'Entityset name'. Their Primary Keys may collide."
I have a textbox that takes an integer value, and a submit button that when clicked passes the value to a detailsview to display the database record at that index.
What I'd like to do is, when the button is clicked, compare the number to the keys in the detailsview's datasource so that if the record ID doesn't exist, I can display a label telling the user that the ID# doesn't exist.
How would I go about doing this? Is there some sort of compare method for the datakeynames property?
I'm getting up to speed with MVC. In all examples that I find, the database tables always seem to have a single autoincrement column as the key. Is this the standard for DB Design when the intent is to use MVC or can MVC cope with compound primary keys that dont necassarily have autoincrement?
Typical DB Design:
[code]....
It's just that obviously in the real world many companies already have a good DB design populated with data based on the classic design style. If I get clients contemplating updating their applications and want to use the MVC framework, will they also need to consider the redesign of the DB?
If MVC can cope with compound key's are there any good examples. I thought that by using binding exclude/include that compound keys are possible, but it wasn't clear to me.
I have two tables customers and sales . I have a formview that inserts to customers (new customers). I want every time I insert a new customer automatically redirect to another page where I will make a sale. On table sales I have a column CustomerID which I want to automatically take the auto numbered CustomerID from Customers table.
Using a very run-of-the-mill database, with identity int for primary keys, a Dynamic Data Entities Project (EntityFramework) displays the primary key for view and edit. When using Linq to Sql, the primary key fields are not displayed.
I would like to hide the primary keys and use Entity Framework (VS 2008, .Net 3.5 sp1).
In the database one number like a 91-9685748596 and, 2nd number like 9122-9685748596 and another one is 9685748596 .when we are try to formate it using substring function it all are may be9685748596,9685748596,9685748596.Mobile number is assigned as a primary key.so its showing error "Primary key violation".We can not the remove primary key also and there are 50 lack data in our database.
Let's say I have a table that holds information about books, with a column called bookid as a primary key with auto increment of 1. When I create a couple of records, it assigns 1 to the first row and 2 to the second row for the bookid column. If I delete the second row and enter another row, even though table now only has 2 records, the primary key column says 1 and 3 for their bookids. Is it possible to change back the bookid of the second record from 3 to 2 or is it just server assigned and can't be changed.
In my application, users fill out a form to submit a "Job Request" - once they submit the form it is stored as a new row in a table in the Sql database. Each "Job Request" that is submitted is given a "JobID" which is a number and also the primary key of the new row in the database (the number is generated by the database). Once the users hit the "submit" button, I'd like to return the value of the "JobID" (the primary key) so that the user can know what it is. How would I achieve this? In the future, I will have to expand the application so that the users would be able to edit an older "Job Request" and get a similar JobID number (so if before it was 1234, the new one would be 1234-1 or something like that), so this is not simply a matter of searching for the highest number in the primary key field in the table and returning that. I'm using Sql for my database and writing in VB.
Yes..i know this is ASP.NEt forums but the SQL server doubt i will be going to ask is related to ASP.NET
I have a table 'a' in my database where i store User information - each time they visit the website a new record is added
so in a high traffic website - the information will be collectively huge(i dont care about this as i have too much of disk space)
but the problem here is with the primary key - I want a datatype of the primary key which should never end Bigint can store some zillions of records but it finally ends... how will i be able to accomplish it.
My codes below are to insert a new data into the database. The thing is, this code can insert the primary key(DeviceID) into the database automatically but I cant seem to find the code to insert the primary key into the database. point me the statement that insert primary key(DeviceID)..
This is the snippet of the submit button event
Protected Sub SubmitDevice_Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SubmitDevice_Button.Click If Session("canUploadBool") = False Then ClientScript.RegisterStartupScript(Me.GetType, "canuploadScript", "") Exit Sub End Dim insertNewProcess As String = "INSERT INTO Device_Table(" Dim deviceColumn As String = "DeviceRevision, CustomerName, CustomerCode, CustomerResponsibleEngineer, Date, DevicePartNumber, PackageType" Dim deviceValue As String = ") VALUES ('01', '" + CustNameDropDownList.SelectedValue.ToUpper + "', '" + CustCodeLabel.Text + "', '" + CustomerResponsibleEngineerTextBox.Text.Trim.ToUpper + "', '" + Format(Now, "dd-MMM-yyyy").ToUpper + "', '" + DevicePartNumberTextBox.Text.Trim.ToUpper + "', '" + PackageTypeTextBox.Text.Trim.ToUpper + "'"
I am using a FormView to populate data, then inserting it using a LinqDataSource. The primary key is an autoincrementing identity. I'd like to handle the ItemInserted event to update some other tables, but I cannot find how to get the primary key of the newly inserted record. The insert happens fine, but nothing for the PK.
I realize I can change to using a SPROC, or change to creating the new row and doing the insert myself, but I'd prefer to continue with the LinqDataSource's automatic insert.
I am using LINQ Expression to insert records in SQL Table. My Table dosen's have any Primary Key Field. Whenever I Am trying to Insert Records in Table using LINQ Expression, this always occurs an Error that 'the Table You are using to insert Dosen't Have Any Primary Key Field.
How I Will Insert Records Without Having Primary Key ?
When a user creates an account for my web application using the create user wizard additional steps have been added to take more details and store them in another table. Now this tables primary key is set to uniqueidentifier, is it possible to have that unique identifier automatically generated when the query is run to insert a new row for a new user?
how can i retrieve the all foreign keys against a single primary key. i mean to say that if a table contain a primary key then it becomes as foreign keys in which tables.
i want to take that nam of that tables and on the base of that tables then i am to delete from all the entries. e.g: if a primary key's column entry deleted then all foreing key entries should also be deleted.
there are 988 tables in a single database. it can't be possible to go for each table to setup foreign key to ON DELETE CASCADE.
.can it have any way to delete against foreign key priority wise? mean to say that parent table contain primary key, child table contain foreign key , now there is another child table which dependent previous child table. then how can i delete all record against it?
i want to do it from programatically. i am using sql server 2005
i have completed this till to that , it retrieves all foreign keys but how to delete now on the base of priority.
Region ( ID int, Name varchar(50), Description varchar(51) )
One thing I can use is to retrieve the max(ID) from region and store it in a variable and increment the variable sequentially and insert. But, if any other user inserts a record while I am executing this script then max(id) might clash with the id inserted with other user causing my script to fail.
Is there any other option to insert record sequentially base on the highest number in the table.
I'm trying to create a Formview in ASP.net 3.5. The underlying SQL Server table does not have an identity field based Primary Key. The primary key is a 4 character user entered field. I have created the form and all looks good but I get the following error message when I try to insert a record
Could not find a row that matches the given keys in the original values stored in ViewState. Ensure that the 'keys' dictionary contains unique key values that correspond to a row returned from the previous Select operation.
I thought ViewState was supposed to resolve the issue. I have viewstate enabled on the page and the formview but that doesn't seem to make a difference.
How can I create a form view with a user-entered text field as the primary key and get the b.... thing to work?