- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图围绕 EF Cores 拥有的对象以及如何控制何时加载某些数据块。
基本上我有一堆旧的遗留表(一些有大约 150 列),并希望使用一个根实体和每个表的几个拥有的对象对它们进行建模,以实现更好的分割和捆绑某些功能。示例:有一个“文章”实体,其中包含基础表中最重要字段的约 20 个属性。该实体还包含一个 OwnedObject“StorageDetails”,其中包含十多个字段(以及与存储内容相关的所有功能)。
问题:我找不到一种方法来控制是否应立即加载拥有的对象。对于其中一些,我更愿意使用 Include() 显式加载它们...
public class Article : EntityBase
{
public string ArticleNumber { get;set; }
// Owned object, shares article number as key.
public StorageDetails StorageStuff { get; set; }
// An Entity from another table having a foreign key reference
public SomeOtherEntity OtherStuff { get; set; }
}
public class StorageDetails : OwnedObject<Article>
{
public Article Owner { get; set; }
}
// Somewhere during model creation ...
builder.OwnsOne(article => article.StorageStuff);
builder.HasOne(article => article.OtherStuff )
...
最佳答案
更新:我不是完全正确 - 拥有实体类型的隐式预加载实际上是默认设置,可以通过 SetIsEagerLoaded 更改元数据 API(EF Core 3.0+)
modelBuilder.Entity<Article>().OwnsOne(e => e.SorageStuff)
.Metadata.PrincipalToDependent?.SetIsEagerLoaded(false);
这允许通过
Include
加载它们/
ThenInclude
.但由于 EF Core 实现细节,拥有的实体类型不能使用显式/延迟加载。尝试这样做会导致运行时异常。所以我在原始答案中的建议仍然适用。
When querying the owner the owned types will be included by default. It is not necessary to use the Include method, even if the owned types are stored in a separate table.
Exclude
方法。
It is now possible to map two or more entity types to the same table where the primary key column(s) will be shared and each row will correspond to two or more entities.
To use table splitting an identifying relationship (where foreign key properties form the primary key) must be configured between all of the entity types sharing the table:
关于c# - EFCore - 如何从自动加载中排除拥有的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54041802/
自动生成字段值,咱们首先想到的是主键列(带 IDENTITY 的主键)。EF Core 默认的主键配置也是启用 Identity 自增长的,而且可以自动标识主键。前提是代表主键的实体属性名要符合以下规
上次老周扯了有关主、从实体的话题,本篇咱们再挖一下,主、从实体之间建立的关系,跟咱们常用的一对1、一对多这些关系之间有什么不同。 先看看咱们从学习数据库开始就特熟悉的常用关系——多对多、一对
前言 基于EF Core + MySQL的基本增删改查,示例是基于 .NET6 + EF Core + MySQL 创建实体和数据库、EFCore 数据迁移 项目基础上的内容增加。同时也是
我试图在我的上下文类中设置一对一的外键关系,但我不断收到以下错误。我找到了一个 similar post但这似乎并没有解决我的问题,因为我在模型中明确指定了关系。我确认: Server 对象引用了一个
运行 dotnet ef migrations add XYZ将导致 a Migrations directory being created在项目中。这个目录是否应该提交给版本控制(Git 等)?
我试图围绕 EF Cores 拥有的对象以及如何控制何时加载某些数据块。 基本上我有一堆旧的遗留表(一些有大约 150 列),并希望使用一个根实体和每个表的几个拥有的对象对它们进行建模,以实现更好的分
我的模型包含 Post 和 PostHistory 类,其中 Post 与 PostHistory 具有一对多关系。 class Post { public int Id { get; set
我有一个 .Net Core WebApplication 项目,其中上下文类位于类库中。如果我在 OnConfiguring(DbContextOptionsBuilder optionsBuild
我正在尝试使用 Entity Framework Core 2.0.1 将现有的 PostgreSQL 数据库转换为实体,但在搭建脚手架时出现错误。数据库是通过运行以下脚本创建的: Script To
我在一个项目中有两个实体:SupplierFinishingItem 和 ProductOptionListItem。 ProductOptionListItem 通过导航属性引用另一个。 当我尝试创
我已经在 this 之后使用 .Net core 和 EFCore 创建了一个 API使用 VSCode 的教程。 我的 MySQL 数据库有很多模型,因为我正在“迁移”我的 EF6 和 asp.ne
目录 一 代码分析 1 GetTableName 2&n
我正在尝试根据实体特定字段中的搜索值列表来过滤实体。 例如: var searchValues = new List { "abc", "xyz" }; var posts = Context.Pos
我有一个在表中创建列的迁移。 public partial class AddName : Migration { protected override void Up(MigrationBu
Ef Core 接收错误 System.InvalidOperationException: Can't process set operations afterclient evaluation,
我有以下型号。在使用 find 方法从数据库中获取时,用子实体加载父实体的更好方法是什么? 父实体: public class Client { public int Id { get; se
我正在使用 EFCore 做一个原型(prototype),并努力寻找一种返回我刚刚添加到实体集合中的对象的好方法。 例如: public Songleader AddSongleader(int c
这个问题已经有答案了: How is Identity.EntityFramework OnModelCreating called (2 个回答) 已关闭12 个月前。 我知道当您创建迁移时它会被调
这个问题已经有答案了: How is Identity.EntityFramework OnModelCreating called (2 个回答) 已关闭12 个月前。 我知道当您创建迁移时它会被调
我想从我的 ASP.net Identity Users 表中查询所有用户并将它们映射到一个简单的 DTO,如下所示: public class UserDto { public string
我是一名优秀的程序员,十分优秀!