Entity Framework Core 1.0(EF7)を使用した足場のDbContextでデータベースビューを使用するにはどうすればよいですか?

entity-framework-core view

質問

残念ながら、 Entity Framework Core 1.0 (旧Entity Framework 7)はま​​だビューをサポートしていません。テーブルを使用してビューを「偽造」しようとしています。

しかし、scaffoldingのdotnet dbcontext ef scaffoldコマンドは現在ビューを認識または生成していません。ビューの照会とテーブルの更新を可能にする単一のDbContextが必要です。これを行う方法はありますか?

これは私がDbContextを足場に使うために使うコマンドです:

dotnet ef dbcontext scaffold -c MyStoreContext -o Model "Data Source=(local);Initial Catalog=DBNAME;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer --force

(これは、私のすべてのモデルクラスをModelディレクトリに置き、それらを上書きするよう強制します。)

注:実際にビューを使用する理由は、GROUP BYロジックの場合です。これはEF Core 1.0でもサポートされていません

人気のある回答

私にとっては、ビューが別のスキーマになっていたので、モデルクラスの属性を変更する必要がありました。

using System.ComponentModel.DataAnnotations.Schema;

namespace API.DataAccess
{
    [Table("MyViewName", Schema = "SomeSchema")]
    public class MyViewName
    {
       //props
    }
}

完全性のために、エンティティコード:

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 );
    });
}


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ