I'm working on an application using a 3 tier architecture and I'm having issues with a business layer select method. Basically, I have a gridview control that is populated by an objectDataSource. The ObjectDataSource calls a select method in the my business logic layer to retrieve data. When the business logic layer calls a table adapter method, I receive the following error message:
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints
This is my first attempt at a 3 tier design and I'm not sure where to start with the debugging process.
Also, the stored procedure that is used by the table adapter select method, creates a new column inside of the query. This column is not included in the datasets datatable. I manually inserted a new column into the datatable from the dataset designer. The new column was created to store the values that are being returned from the new column in the stored procedure. I'm not sure if this is the correct way to do this or not but it allowed me to access the column in the business logic layer methods.
Do you have the concept of Business Transfer Objects? These are normally classes which represent the entities of your application. You would create instances of these, or rather Lists of these in your Business Layer, and these are what are handed to your ObjectDataSource for binding to the UI. This would eliminate the need for the TableAdapter.
Now, I know that this doesn't "fix" your problem, but what I am suggesting is that this might be an overall cleaner approach.