Sfortunatamente Entity Framework Core 1.0 (ex Entity Framework 7) non supporta ancora Views e sto provando a "falsificarlo" usando una tabella.
Tuttavia il comando scaffolding dotnet dbcontext ef scaffold
attualmente non riconosce o genera viste, e voglio un singolo DbContext che permetta di interrogare una vista e aggiornare le tabelle. C'è un modo per fare questo?
Questo è il comando che utilizzo per impalcare DbContext:
dotnet ef dbcontext scaffold -c MyStoreContext -o Model "Data Source=(local);Initial Catalog=DBNAME;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer --force
(Questo mette tutte le mie classi modello in una directory Model
e le obbliga a essere sovrascritte).
Nota: il motivo per cui effettivamente desidero utilizzare una vista è per la logica GROUP BY, che non è supportata né in EF Core 1.0
Per me, la mia vista era in uno schema diverso, quindi ho dovuto modificare un attributo sulla classe del modello:
using System.ComponentModel.DataAnnotations.Schema;
namespace API.DataAccess
{
[Table("MyViewName", Schema = "SomeSchema")]
public class MyViewName
{
//props
}
}
Per completezza, il codice entità:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<MyViewName>(entity =>
{
entity.HasKey(e => new { e.SomeColumn }).HasName("PK_FAKEKEY");
entity.Property(e => e.SomeColumn ).IsRequired();
entity.Property(e => e.SomeColumn2 );
entity.Property(e => e.SomeColumn3 );
});
}