• 10/09/2020

本文 内容

影子 属性 是 未 在 .NET 实体 类 中 定义 但 在 EF Core 模型 中 为该 实体 类型 定义 的 属性。 这些 属性 的 值 和 状态 纯粹 在 更改 跟踪 器 进行 维护。 当 数据库 中 的 数据 不应 在 映射 的实体 类型 上 公开 时 , 阴影 属性 非常 有用。

索引 器 属性 是 实体 类型 属性 , 由 .NET 实体 类 中 的 索引 器 支持。 可以 在 .NET 类 实例 上 使用 索引 器 对其 进行 访问。 它还 允许 向 实体 类型 其他 属性 , 而 无需 更改 更改 CLR 类。

外 键 阴影 属性

影子 属性 最常 用于 外 键 属性 , 其中 两个 实体 之间 的 关系 由 数据库 中 的 外 键值 表示 , 但 使用 类型 之间 的 导航 属性 在 实体 类型 上 管理 关系。 按照 约定 , 当 关系 关系 但 在依赖 实体 类 中 找不到 外 键 属性 时 , EF 会 引入 一个 影子 属性。

该 属性 将 被 命名 <nume proprietate navigare> <nume proprietate cheie principal> (在 依赖 实体 上 导航 (指向 主体 实体) 用于 命名)。 如果 主体 键 属性 名称 包含 属性 的 名称 , 则 该 名称 将 只是 <principal nume proprietate cheie>。 如果 依赖 实体 上 没有 导航 属性 , 则会 在 其 位置 使用 主体 类型 名称。

I , 下面 的 代码 列表 将 导致 将 BlogId 影子 属性 引入 到 Post 实体 :

clasa interna MyContext: DbContext {public DbSet <Blog> Bloguri {get; a stabilit; } public DbSet <Post> Postari {get; a stabilit; }} public class Blog {public int BlogId {get; a stabilit; } public string Url {get; a stabilit; } public list <Post> Postari {get; a stabilit; }} public class Post {public int PostId {get; a stabilit; } sir public Titlu {get; a stabilit; } sir public Continut {get; a stabilit; } // Deoarece nu exista nici o proprietate CLR care sa detina // cheia straina pentru aceasta relatie, se creeaza o proprietate umbra. public Blog Blog {get; a stabilit; }}

配置 阴影 属性

你 可以 使用 “熟知 API” 配置 阴影 属性。 调用 的 字符串 重载 后 Proprietate , 链接 链接 到 其他 的 的 任何 配置 调用。 在 下面 的 示例 中 , 由于 Blog 没有 名为 的 CLR 属性 , 因此 将 Ultima actualizare 创建 一个影子 属性 :

clasa interna MyContext: DbContext {public DbSet <Blog> Bloguri {get; a stabilit; } override protected void OnModelCreating (ModelBuilder modelBuilder) {modelBuilder.Entity <Blog> () .Property <DateTime> (“LastUpdated”); }} public class Blog {public int BlogId {get; a stabilit; } public string Url {get; a stabilit; }}

如果 提供 给 方法 的 名称 Property 与 现有 属性 的 名称 相 匹配 (影子 属性 或 在 实体 类) 上 定义 的 属性 , 则 代码 将 配置 该 现有 属性 , 而 不是 引入 新 的 阴影 属性。

访问 阴影 属性

可以 通过 API 获取 和 更改 影子 属性 值 ChangeTracker :

context.Entry (myBlog) .Property (“LastUpdated”). CurrentValue = DateTime.Now;

可以 通过 静态 方法 在 LINQ 查询 中 引用 影子 属性 EF.Property :

var blogs = context.Blogs .OrderBy (b => EF.Property <DateTime> (b, “LastUpdated”));

在 无 跟踪 查询 后 , 不能 访问 阴影 属性 , 因为 更改 跟踪 器 不 跟踪 返回 的 实体。

配置 索引 器 属性

你 可以 使用 熟知 的 API 来 配置 索引 器 属性。 调用 方法 后 IndexerProperty , 可以 链接 到 其他 的 任何 配置 调用。 在 下面 的 示例 中 , Blog 已 定义 索引 器 , 并将 用于 创建 索引 器 属性。

override protected void OnModelCreating (ModelBuilder modelBuilder) {modelBuilder.Entity <Blog> () .IndexerProperty <DateTime> (“LastUpdated”); }

如果 提供 给 方法 的 名称 IndexerProperty 与 现有 索引 器 属性 的 名称 匹配 , 则 代码 将 配置 该 属性。 如果 实体 类型 具有 由 实体 类 的 属性 支持 的 属性 , 则会 引发 异常 , 因为 索引 器 属性 只能通过 索引 器 访问。

属性 包 实体 类型

备注

EF Core 5.0 中 引入 了 对 属性 包 实体 类型 的 支持。

仅 包含 索引 器 属性 的 实体 类型 称为 “属性 包 实体 类型”。 这些 实体 类型 没有 影子 属性 , 而 EF 将 创建 索引 器 属性。 目前 仅 Dictionar <sir, obiect> 支持 作为 属性 包 实体 类型。 它 必须 配置为 具有 唯一 名称 的 共享 实体 类型 , 并且 DbSet 必须 使用 调用 来 实现 相应 的 属性 Set。

clasa interna MyContext: DbContext {public DbSet <Dictionar <sir, obiect >> Bloguri => Set <Dictionar <sir, obiect >> (“Blog”); protected override void OnModelCreating (ModelBuilder modelBuilder) {modelBuilder.SharedTypeEntity <Dictionar <sir, obiect >> (“Blog”, bb => {bb.Property <int> (“BlogId”); bb.Property <string> (“Url “); bb.Property <DateTime> (” Ultima actualizare “);}); }}

vporn interracial video porno martina smeraldi
pubblic anal video porno max felicitas
rocco siffredi e milena mastromarino video porno melena
volpetti dipre video porno milanese
famiglia porn video porno milanesi
ti sborro in culo video porno moglie tradisce
porno hub malena video porno pinocchio
club prive certe notti video porno rebecca volpetti
gemma porn video porno roberta
malena black cock video porno roberta farnese
italian porn fake video porno roberta gemma
orgexxx video porno rocco e malena
moglie tradisce xxx video porno rocco malena
sex analyst malena video porno rocco malena
rocco academy porno video porno rossella visconti
porno bari video porno salieri
malena rocco sifredi video porno sardegna
malena la pugliese il film video porno segretaria
always watching streaming ita video porno segreteria
valentina nappo porno video porno selvaggi