Generating Persistent Objects for Existing Data Tables
4 min to read
XPO gives you the ability to generate persistent objects for your existing databases using only a few mouse clicks. It provides a design-time wizard that allows you to generate persistent objects for one or more data tables in your database at the same time. It is only needed to specify connection settings to the database, and select target tables and columns. The wizard will automatically generate persistent objects for the selected tables.
Data tables whose primary keys are composed of several columns are not supported by the wizard. These tables are neither displayed nor processed by the wizard.
Step by Step Instructions
Select the Add | New Item... command from the context menu in Solution Explorer.
Select the DevExpress ORM Data Model Wizard item in the invoked dialog window, specify the data model name (e.g., MyDataModel) and click Add.
In the invoked Data Model Wizard, select Map to an existing database and click Next. The wizard will ask you to specify connection settings to the database containing a target data table(s):
Multiple database systems (MS SQL Server, DB2, MySql, Firebird, etc.) are supported by the wizard. Use the Provider combo box to select the required database type. Note that the corresponding database provider assembly must be available on your machine, otherwise the wizard will fail.
Click Next after connection settings have been specified.
When the Wizard initializes the ADO.NET provider and establishes a database connection, it may display the following error messages: "Could not find assembly ...", "None of the following assemblies found: ...", "Could not load assembly ...", "Could not find type ...", and others. In this case, ensure that you have the required database provider installed, and that database provider assemblies are available. Assemblies required by XPO data store adapters are listed in the Database Systems Supported by XPO topic. Place the required DLLs in a location where the Visual Studio process can find them. You can install .NET assemblies to the Global Assembly Cache (GAC) and copy the required native DLLs (if any) to %SystemRoot%\System32, to make them available globally. For details, see the ORM Data Model Designer and Wizard knowledge base article.
In the next step, the wizard displays a list of tables that can be mapped to persistent objects.
Select a table(or tables) to be mapped to a persistent object (or to persistant objects), and for each table select columns that will be mapped to the persistent object's properties. For unchecked columns, persistent properties will not be generated.
Click Next after the required tables and columns have been selected.
The names of persistent classes and their properties will match the names of selected tables and their columns. You can add/remove custom prefixes and suffixes, and change the case style of names (e.g., capitalize names automatically). You can also preview the resulting names immediately, and manually edit them later in the Data Model Designer. The classes and properties with modified names will still be mapped to the corresponding tables and columns using the PersistentAttribute attribute.
Click Next, and then click Finish to close the wizard. Click the File | Save All menu item in the Visual Studio toolbar to generate persistent classes. The generated data model will be opened in the Data Model Designer.
If you do not want to use the Data Model Designer and prefer to edit generated classes manually, do the following:
In the wizard, uncheck the Create partial declarations for manual editing option. As a result, partial declarations will not be generated and a single file will be created for each class.
After the wizard is completed, remove the generated MyDataModel.xpo file (here, "MyDataModel" is the name you specified in step 2 above).
Use classes in the MyDataModelCode folder as regular Code First classes - make required modifications in code manually.
You can try the functionality described here in the Querying a Data Store | Generating Persistent Classes for an Existing Database section of the XPO Tutorials demo (C:\Users\Public\Documents\DevExpress Demos 19.2\Components\WinForms\Bin\XpoTutorials.exe).