12

ef core 2.2 では、DbQuery を使用して生の SQL 結果をオブジェクトに次のようにマップしました。

public partial class AppDbContext{
    public DbQuery<SimpleQueryModel> SimpleQM {get;set;}
}

その後

var result=_dbContext.SimpleQM.FromSql(sqlString,params);

これにより、余分なテーブルが作成されることはなく、問題なく機能します。ef core 3.1 では DbQuery は廃止され、代わりにキーレス DbSet を使用するように指示されました。次のように構成しました。

public partial class AppDbContext{
    public DbSet<SimpleQueryModel> SimpleQM {get;set;}
}

そしてModelCreatingで

builder.Entity<SimpleQueryModel>().HasNoKey();

しかし、これにより新しいDB移行で新しいテーブルが作成され、次のようにこのエンティティを無視するようにefに指示すると

builder.Entity<SimpleQueryModel>().HasNoKey().Ignore();

これを使用する_dbContext.SimpleQM.FromSqlRaw();と、例外がスローされ、モデルがコンテキストに含まれていないことが通知されます。どうすればefコア3.1で同じ機能を実現できますか?

4

1 に答える 1