Reputation: 1339
I'm learning ASP.NET Core
and I'm having some problems with the following scenario:
I created an extension class for IdentityUser
provided by Microsoft.AspNetCore.Identity
, the extension class add some extra field to the default database AspNetUsers
:
public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
public string LockoutMessage { get; set; }
public string SessionId { get; set; }
}
I was able to update the table structure executing the following commands:
add-migration <migration name> -context <app context>
update-database
Problem
Suppose now I used the software Microsoft SQL Server Management Studio
for create another table called UserDetails
which have as FK
the id of the AspNetUsers
table.
I want generate the class inside the Models
folder with all the properties from my application, so I don't need to write manually the property of the table of the new table, how can I do that?
I tried: update-database
but not seems to work.
Upvotes: 0
Views: 55
Reputation: 239360
The only way to bring in stuff from a database is with Scaffold-DbContext
. However, that's an all or nothing affair. It's going to create entity classes for every table in the database (regardless of whether they already exist) and a DbContext
to boot.
Either you're using code first and you create your entities and generate migrations that you run against the database OR you make changes to the database and then use the Scaffold-DbContext
command to generate the context and all the associated entities. You cannot mix and match.
Long and short, you need to pick a strategy and stick with it. If you're more comfortable with the database then do everything there and scaffold the code from that. Otherwise, if you want to use code first, then make a commitment to that and never manually touch your database.
Upvotes: 1