MVC :: Creating Table Records With Foreign Key Constraints / Separate Controllers?
Oct 3, 2010
I have multiple tables that are all linked back to a central table with foreign keys. I want to be able to create a new record in table 2, but I'm having trouble because I don't know how to create a new instance of table 2's record while referencing the ID of the record it will be tied to.
EXAMPLE:
Database: Collection
Table: Collection Field 1: id Field 2: name
Table: Book Field 1: collectionId Field 2: id Field 3: name
Now, I don't want to be able to create a book without setting it's collectionID, but I can't figure out how this should be divided in the controllers/views.
Should Book have a controller separate from Collection, or should the Collection controller have a createBook method, separate from it's own create method?
I want to call the createBook method (from it's own controller, or the Collection controller) from the Collection Details view.
When I invoke the create method of Book, how do I create a new Book that is instantiated with the collectionId set from the details view of the Collection item that was listed in the details view?
I should point out, I'm using the entity framework for my model, and I'm definitely new to this.
I am reorganizing my MVC app into a Models project and a Controllers project, and then the main application as a project. So, everything is working good so far except. Whenever I go to "Rebuild" my controllers project, I get this error: Controllers.AccountController.Initialize(System.Web.Routing.RequestContext)': no suitable method found to override.
Keep in mind that AccountController.cs was automatically placed in my application by Visual Studio, and this was all working fine when the Controllers were within my main project. I think it might have to do with the ASPNETDB.MDF file that this AccountController.cs file references to authenticate users as they log in, since this database stayed within my main project and didn't follow the Controllers project.
Here's the Initialize method on my AccountController: protected override void Initialize(RequestContext requestContext) { if (FormsService == null) { FormsService = new FormsAuthenticationService(); } if (MembershipService == null) { MembershipService = new AccountMembershipService(); } base.Initialize(requestContext); }
This is my UserRoleList.aspx.cs Code where i am passing the session variable to the page Default.aspx.cs..
And the error is: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints. I have gone through many pages , and tried by making the AllowDbNull property making True and then different things.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data;
[code]...
This is the code of the second page Default.aspx.cs where i have to user the session varaible to pass in the SQL fucntion named GetDataByUserId as shown below:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;
I'm building a CMS type of application in MVC. I want to reuse my views and controllers for adding/managing content in at least two other MVC sites. Obviously I dont want more than one code base for the CMS stuff. I figured out a way to do so:
Controllers:
Controllers are easy. Nothing more than creating a new Class Library Project and adding your controllers. Be sure to reference System.Web.MVC. In your MVC project just reference your controller assembly.
Views:
Views are a bit trickier. My solution was to add the folder structure to my assembly
CMSViews CMSViewsWhatever
Then start adding my view pages. For each page, you have to set the 'Copy to Output Directory' to 'Copy Always' (right click -> properties)
Then I created a new class which inherits from 'WebFormViewEngine'. In the constructor I call the base() and then I add paths to the base.MasterLocationFormats and base.ViewLocationFormats to specify the new locations to look for views.
[Code]....
Setup in MVC project:
To get the controllers and views to work from the assemblies, you have to add two lines of code in the global.asax. Under the RegisterRoutes() method, add
ControllerBuilder.Current.DefaultNamespaces.Add("YourAssemblyNamespace.Controllers"); then under the Application_Start() method add: ViewEngines.Engines.Add(new YourAssemblyNamespace.MyViewEngine());
What I dont like is that the Views get put into the Bin directory when published and you have to make sure to set the Ouput to Copy Always which is going to be a PITA for larger projects with lots of views.
i have to show the alternate data of invoices and receipts in datagrid; condition is that if Date column in INVOICE table matches with invoice columns in RECEIPTS table then the corresponding row of RECEIPTS table should come after INVOICES table row if there is no match then INVOICES table next row will come, and if there is match then then RECEIPTS TABLE row will appear
tables are below
INVOICES: Date Sales Client Amount Paid Status Notes 03/27/2008 Chinmoy Panda ETA Prospect 100 SENT qwwert 04/30/2008 Amit Sharma ETA Prospect 1000 FROZEN 05/13/2008 Chinmoy Panda ETA Prospect 40000 SENT [code]...
I mean parameters of methods of controllers. For example, I have a View, which has :1. One radiobutton Yes / No (table inside DB has bit field)2. dropdownlist with int values (table has int too)3. Textbox (Firstname for example)I can create a method:
I am trying to implement the SportStar from Steven Sanderson book but I am encountering a problem when I want to create the NavController. The code is below
public NavController(IProductsRepository productsRepository)
I am new to sql. I got this task to design a table in sql. It has for columns user_ID(PK, FK1) , WebSite_ID (PK, FK2), Create_Dt, Update_Dt How do I create PK and Fk1 and PK FK2 in sql server 2008 R2
I am trying to create a relation between 2 of my model classes. I have separated my Model classes to be in their own project "Domain Model" and the application exists in the "WebUI" project.
I have 2 models.... SupportIssues and Users....
SupportIssues has a column UserID which is also a primary key in the Users table.
I want to create a relationship where one user can have many support issues.
If I am going to use the asp.net membership and roles, the asp.net database includes an aspnet_Users table that has the userid and email address. If I have custom fields is it best practice to maintain a separate usert table and link on user id or to add fields to the aspnet_Users table?
I have two tables. Product_Table with ProductID as the primary key. My other table, ProductSKU_Table which has SKU as the primary key and ProductID as the foreign key. I am trying to create a store procedure to insert into both tables. How do I insert the primary key from the Product_Table into the foreign key of the ProductSKU_Table? This is what I have so far:
I have a datagrid control which is bound to a table which containing more than 1000 records. And i want to show only 25 records once a time. I have used paging in datagrid. But each time the next page index is set, query is fired again. This takes lots of time. So what is the easiest way to bound data in this case to improve performance.
I have a app that records some jobs and those jobs can have notes attached therefore i connected the table with a foreign key, my notes to a Job.
in the details view of the job i allow the user to view the jobs by sending the id and fulling all the notes that match the id in the index view for the notes table. in the list of notes i have a action link to create a new note, here i sent also the id of the job to the create action of the control and try to insert that intot he note JobId to make the reference. I get this error and the note is not created. the note creats from code but not via the note controller creat action.
i get this - An error occurred while updating the entries. See the inner exception for details. below is the create action in the note controller
public ActionResult Create(int id)
{ // var newnote = db.Jobs.Include("StatusNotes").Single(j => j.JobId == id);[code]...
I have tables two tables, the "book" and the "author", a book can have many authors and vice versa, so there is an intermediate table called "book_author" with two columns as foreign key for those two primary keys
book_author book_id author_id
I'm trying to edit the book details and also its author using the entity date model, The controller class method
[Code]....
The HTML edit form
[Code]....
I can only update the book table, but not author that the book has or the book_author, I'm new to asp.net, I can't easily find a tutorial on this issue, I think the logic is to delete the author of the book first and then add the author for that book, but I don't know exactly about that linq and C# code. Can show me? I can only update the book table, but not author that the book has or the book_author, I'm new to asp.net, I can't easily find a tutorial on this issue, I think the logic is to delete the author of the book first and then add the author for that book, but I don't know exactly about that linq and C# code.
I have set up a ASP.net MVC application which uses the default forms authentication. It uses the ASPNETDB.mdf like shown here:
I then set up another database connection which is similar to the NerdDinner.mdf file above.
I have a post that belongs to a user. It has a UserId value which needs to be a foreign key to the information in ASPNETDB.mdf. When I go to add a foreign key, I can only see information with regards to the table I made. How do I go about doing this?
how i call a image field from another table? the image field in the same table is working fine but the one on the other table is not. I have created the foreign key and made the connection... What else do i need to do to call that field? Page Load:
i am using sql server 2005 as backend for developing webforms with asp.net using C#.i have two tables table1 and table2.
table1 has user_id(primary key,not null),user_name. and table2 has dept_id(primary key,not null),user_id(foreign key,not null),dept_location.
Firstly i created table1 and insert data in it.. later i created table2 with foreign key relationship with table1..In the add form design of table2 for entering data and insert into table2,i placed a dropdownlist which is binded with user_id from table1...dropdownlist's.datatextfield is equal to "user_name" and datavaluefield is equal to "user_id"..i have to select user_name from dropdownlist.... what i have to do is to insert data into table2... i used the simple sql insert statement as follows..
insert into table2 values(......); but it shows error :insert statement conflicted with the foreign key.
the 1st: PAR_TipiDocumento with idTipoDocumento PK idClasseDocumento [...]
the 2nd: PAR_ClassiDocumento with idClasseDocumento PK [...]
and a foreing key FK_PAR_TipiDocumento_PAR_ClassiDocumento from PAR_TipiDocumento.idClasseDocumentoto PAR_ClassiDocumento.idClasseDocumento.
This is my .cs code for the metadata:
[MetadataType(typeof(PAR_TipiDocumento_Metadata))] [DisplayName("Tipi Documento")] public partial class PAR_TipiDocumento[code]....
The problem is that in the Dynamic Data generated pages I correctly see all the display names "Tipi Documento" except for the header row of the PAR_ClassiDocumento table where I have "PAR_TipiDocumentos" (the plural generated by LINQ to SQL). The values under this column are correctly rendered as links to the PAR_TipiDocumento table with the right display name ("View Tipi Documento").
How can I change the Display Name of that "PAR_TipiDocumentos"?
I want to insert AccountID a foreign key of HappyLand Table. I want AccountID of Happyland to be the same as the AccountInfoID of AccountInfo. I created a relationship between tables, but I still can't get it to insert the AccountID. I am inserting Data SQLDatasource3.Insert()
TABLE HapplyLand TABLE AccountInfo ID INT primary key AcountID INT primarykey AccountID INT foreign key email varchar(50) Age varchar(50) LastName varchar(50) Phone varchar(50)
I need to populate the foreign key coloum in the table.
i have three tables PATIENT DETAILS ptID firstName lastName address IMPLANT DETAILS impID ptID productID productSerialNo PRODUCT productID productName
I am instering data in PATIENT DETAILS and IMPLANT DETAILS table on the same page from single button click .
I have a foreign key on the table IMPLANT DETAIL (productID) which i populate through the value on the dropdownlist .
What my problem is how will i populate foreign key (ptID) in IMPLANT DETAIL table. When ptID (PATIENT DETAIL) will also be generated from the same button click at almost of the same time.
I have a patient entry table, which has patientID as primary key. if I want to retrieve tests information about a particular test then I have to add a pid as foreign key??
do i have to add a test_ID kinda field in all four tests tables????