web-dev-qa-db-ja.com

EF Core 3 DbQueryと同等の機能

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 core 3.1で同じ機能を実現するにはどうすればよいですか?

3
Reza Ebadi

問題が解決しました!この構成を使用しました。

builder.Entity<SimpleQueryModel>().HasNoKey().ToView("view_name_that_doesnt_exist");
5
Reza Ebadi