>Ciao a tutti
>ho iniziato a studiare EF code-first. Il problema è che molti
>articoli danno per scontato alcune cose dell'EF.
>Mi consigliate tutorial, libri ecc che insegnano EF e che si
>concentrano sul code-first?
>
mi potresti specificare quali articoli in specifico ti hanno lasciato dei dubbi, e cosa davano per scontato? sto preparando una sessione per il sql saturday a Parma, proprio su EF6, e sarei curioso di conoscere i tuoi dubbi, magari mi possono ritornare utili per capire quali sono i dubbi più comuni:
https://www.sqlsaturday.com/355/eventhome.aspx
https://www.sqlsaturday.com/viewsession.aspx?sat=355&sessionid=25373
qui trovi un bellissimo tutorial passo a passo che spiega come utilizzare entity framework su asp.net MVC 5, stessi identici principi sono applicabili anche ad applicazioni wpf, console, ...: http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application
>Piccolo dubbio: vorrei utilizzare il provider di sqlserver per
>gestire il login, i ruoli ecc. Come gestisco questo con EF code-first?
>Mi spiego meglio: mi creo le tabelle del db con aspnet_regsql.exe
>o devo anche quì crearmi una classe per ogni tabella?
per la gestione delle login, asp.net ha pubblicato un nuovo provider che si chiama "asp.net identity" (http://www.asp.net/identity), prima si chiamava asp.net membership, poi diventato simple membership, poi universal providers, e infine asp.net identity 
quest'ultimo è stato implementato perchè fosse estensibile al massimo, appunto per evitare di dovere ogni volta riscrivere un provider nuovo da capo, qui trovi l'introduzione: http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity
e si asp.net identity può essere direttamente utilizzato da entity framework, anche code-first, anzi specialmente code-first di cui io sono tifoso. In pratica invece che creare il tuo db context ereditando dalla classe base DbContext, erediti dalla IdentityDbContext, che non fa altro che aggiungerti automaticamente due proprietà DbSet, per gli utenti e i ruoli. Questo IdentityDbContext lo trovi aggiungendo da NuGet il pacchetto "Microsoft ASP.NET Identity EntityFramework".
Prima di utilizzare l'IdentityDbContext, prima ovviamente segui il tutorial che ti ho scritto sopra, per avere dimestichezza in generale con EF code-first, poi vedrai che innestare anche l'identity è semplice come ereditare da una classe:
installi il nuget "Microsoft.AspNet.Identity.EntityFramework":
e poi con due righe di codice, hai il tuo database, con le tue tabelle + il provider di identity di asp.net, quest'ultimo ad oggi estremamente personalizzabile, cioè puoi crearti il tuo utente come vuoi (vedi ApplicationUser):
using System.Data.Entity;
using Microsoft.AspNet.Identity.EntityFramework;
namespace ConsoleApplication12
{
class Program
{
static void Main(string[] args)
{
using (var db = new MyDbContext())
{
db.Database.Initialize(false);
}
}
}
public class Customer
{
public int CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class ApplicationUser : IdentityUser
{
public string Address { get; set; }
}
public class MyDbContext : IdentityDbContext<ApplicationUser>
{
public MyDbContext()
: base("ConsoleApplication12.MyDbContext")
{
Database.SetInitializer(new DropCreateDatabaseAlways<MyDbContext>());
}
public DbSet<Customer> Customers { get; set; }
}
}
Michael Denny | Microsoft Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.net
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic