我希望能够通过调用存储过程来使用EF Core加载实体。
该实体通过流畅的映射与表相对应,但是这个表不包括存储过程中选中的所有列。
在实体配置中忽略那些不存在于表列中的已选字段,如下所示:
存储过程是这样调用的:
在实体配置中忽略那些不存在于表列中的已选字段,如下所示:
modelBuilder.Entity<CustomerLocationEntity>().Ignore(c => c.Latitude);
modelBuilder.Entity<CustomerLocationEntity>().Ignore(c => c.Longitude);
modelBuilder.Entity<CustomerLocationEntity>().Ignore(c => c.Radius);
modelBuilder.Entity<CustomerLocationEntity>().Ignore(c => c.Distance);
存储过程是这样调用的:
await SalesContext.CustomerLocation
.FromSql("GetCustomersByLocation @latitude={0}, @longitude={1}, @radius={2}", lat,
lon, radius)
.ToListAsync();
当查询执行时,被忽略的列不会映射到实体。在调用存储过程时是否有可能将忽略的字段映射到实体,或者我必须为存储过程创建另一个实体或类似的东西?
[NotMapped]
属性的DbSet
时,在应用迁移后,仍会创建相应的数据库表。 - Aleksandr Chuikov[NotMapped]
应该修饰LocationProcedure
类,而不是DbSet
。 - user3071284