实体框架延迟加载的私有支持字段

2024-01-11

我正在使用启用了延迟加载的 Entity Framework 5。我有以下代码:

    private ICollection<Subscription> _subscriptions = new Collection<Subscription>();

    public virtual ICollection<Subscription> Subscriptions
    {
        get { return _subscriptions; }
        set { _subscriptions = value; }
    }

但这有意义吗?我想确保公共财产Subscriptions永远不会为空。由于虚拟实体框架重写了 getter 和 setter 以提供延迟加载功能。

我是否需要此字段,或者我可以只使用自动属性,但如果没有订阅,我会得到一个空列表吗?


如果对象是通过以下方式构造的,您的代码将起作用new关键词。但请注意许多序列化程序的功能使得对象构造函数和字段初始值设定项不起作用 https://stackoverflow.com/q/9419743/141172.

因此,我决定采用以下模式:

private ICollection<Subscription> _subscriptions;

public virtual ICollection<Subscription> Subscriptions
{
    get 
    {   
        if (_subscriptions == null) _subscriptions = 
            new Collection<Subscription>();

        return _subscriptions; 
    }
    set { _subscriptions = value; }
}

此代码模式与 EF 配合使用,并且无论对象是否实例化都有效new或者使用不运行对象初始化代码的序列化器。

The get还可以使用空合并运算符更紧凑地编写:

    get 
    {   
        return _subscriptions ?? (_subscriptions = 
            new Collection<Subscription>()); 
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架延迟加载的私有支持字段 的相关文章

  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • 适合初学者的良好调试器教程[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个好的初学者教程 在 C 中使用调试器 我感觉自己好像错过了很多 我知道怎么做 单步执行代码并查看局部变量 虽然这常常给我带来问
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • JNI 将 Char* 2D 数组传递给 JAVA 代码

    我想从 C 代码通过 JNI 层传递以下指针数组 char result MAXTEST MAXRESPONSE 12 12 8 3 29 70 5 2 42 42 在java代码中我写了以下声明 public static native
  • 使用 GCP 的数据存储区时如何区分代码是在模拟器中运行还是在 GKE 中运行

    按照中给出的说明进行操作后 我不确定是否遗漏了任何内容https cloud google com datastore docs tools datastore emulator https cloud google com datasto
  • 使用 LINQ to SQL 时避免连接超时的最佳实践

    我需要知道在 net 应用程序中使用 LINQ to SQL 时避免连接超时的最佳实践 特别是在返回时IQueryable
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • 等待 IAsyncResult 函数直至完成

    我需要创建等待 IAsyncResult 方法完成的机制 我怎样才能做到这一点 IAsyncResult result contactGroupServices BeginDeleteContact contactToRemove Uri
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 可访问性不一致:参数类型的可访问性低于方法

    我试图在两个表单之间传递一个对象 基本上是对当前登录用户的引用 目前 我在登录表单中有一些类似的内容 private ACTInterface oActInterface public void button1 Click object s
  • 使用 omp_set_num_threads() 将线程数设置为 2,但 omp_get_num_threads() 返回 1

    我有以下使用 OpenMP 的 C C 代码 int nProcessors omp get max threads if argv 4 NULL printf argv 4 s n argv 4 nProcessors atoi argv
  • GCC 的“-Wl,option”和“-Xlinker option”语法之间有区别吗?

    我一直在查看一些配置文件 并且看到它们都被使用 尽管在不同的体系结构上 如果您在 Linux 机器上使用 GCC 将选项传递给链接器的两种语法之间有区别吗 据我所知 阅读 GCC 手册时 他们的解释几乎相同 From man gcc Xli
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string

随机推荐

  • 如何在Android Studio/IntelliJ中导入Maven依赖?

    我使用 Android Studio 中的默认向导创建了一个新的 Android 项目 编译并将应用程序部署到我的设备上 一切都很好 现在我想导入 Maven 上可用的外部库 http square github io picasso ht
  • 无法连接到 Windows Azure VM (Server 2012 R2) Web 部署服务

    我似乎无法将站点部署到在 Azure VM 中运行 IIS 和 Web 部署的 Windows Server 2012 r2 我已验证端口是否打开 凭据是否正确以及站点名称是否正确 我尝试使用 http 和 https 也尝试 使用 msd
  • 386+ 处理器中的复位向量

    维基百科页面为重置向量 http en wikipedia org wiki Reset vector说 对于 386 处理器 复位时 CS 寄存器选择器部分的值为 F000h CS 寄存器基址部分的值为 FFFF0000h 复位时 IP
  • Django 和 SaaS。如何为每个 Django 站点使用单独的数据库?

    我正在使用 Django 创建一个 SaaS 项目 我决定使用django saas kit https github com zhaque django saas kit对于用户订阅和多帐户部分 理想情况下 我希望能够为每个用户创建一个新
  • C++ 和完全动态函数

    我有走弯路的问题 众所周知 Detours 只能在 5 个字节的空间之间移动 即 jmp 调用和 4 个字节的地址 因此 类 方法 中不可能有 hook 函数 您无法提供 this 指针 因为根本没有足够的空间 here s https s
  • Flask 应用程序无法在 heroku 服务器上启动

    我正在尝试使用 Heroku 部署 Flask 应用程序 这是简单的 API 与 foreman 一起在本地工作得很好 但在 heroku 上启动时出现错误 日志如下 这是我的应用程序代码 我知道它只是在一个块中查找 但我在将其拆分为文件时
  • VB.Net 损坏的字符串 - IDE 错误地将字符串解释为代码

    今天我打开了一个 Visual Basic 项目 其中有几行声明了一些字符串 其中包含逗号分隔的数据 我修改了其中一根字符串 重建并关闭了该项目 当我来测试时 出现了错误 当我查看代码时 我发现我修改的那一行之后的字符串也发生了变化 它们在
  • 使用 URLClassLoader 动态加载 JAR?

    我有一个程序需要能够在运行时动态加载 JAR 环顾四周后我相信它使用了 URLClassLoader 但我不确定如何让它工作 JAR openup jar 与程序位于同一目录中 Ideally我希望能够加载这个 JAR 而不必指定其中的每个
  • 在 Linux 上将 MSword 转换为 XML/HTML

    我需要将 MSWord 文件转换为 XML 或 HTML 同时保留文件的结构 主要是表格 我偶然发现了tika 它在从MSword文件 和任何文件 中提取文本方面非常强大 如下 curl www vit org downloads doc
  • TFS 2017 不构建 Fakes 目标

    我有一个安装了 VS 2017 Enterprise 的 TFS 2017 Update 2 本地服务器 我们的构建包含一个单元测试项目 其中包含一个 Fakes 程序集并在开发计算机上本地工作 在 TFS 上构建时 构建失败并显示 命名空
  • 动态插入 iframe 中的 jQuery .ready

    我们正在使用 jQuerythickbox http jquery com demo thickbox 当有人点击图片时动态显示 iframe 在此 iframe 中 我们使用galleria http devkick com lab ga
  • 更改总计和tax_total Woocommerce

    我使用自定义计算创建自定义结帐页面 我如何无法通过 Ajax 更改总计和tax total 或根据需要刷新页面 我为 ajax 请求创建自定义页面并设置此代码 ss new WC Session Handler ss gt set tax
  • 在 Hibernate 中使用惰性属性

    hibernate 中属性标签的惰性属性允许按照链接延迟加载属性 http docs jboss org hibernate orm 3 3 reference en US html mapping html mapping declara
  • 在 git 命令中的开关之前放置 - 和 -​- [重复]

    这个问题在这里已经有答案了 为什么我们把 在 git 中进行一些切换之前 在其他人之前 有没有任何经验法则可以帮助您记住使用哪一个 这实际上是一个通用的类 Unix 系统功能 在 GNU 应用程序中变得很常见 单破折号选项是 短 选项 双破
  • 使用 lapply 根据旧列创建新列

    我的数据如下 DF lt structure list No Adjusted Gross Income c 183454 241199 249506 NoR from 1 to 5000 c 1035373 4272260 1124098
  • 在 VS 2005 中增量构建

    我们在 VS 2005 中有 50 个项目的解决方案 如果没有任何改变 有什么方法可以进行增量构建吗 它有点像现在就这样做 但它执行每个项目的所有预构建和构建后事件 有什么办法可以预防吗 看看构建活动标签 请注意底部的下拉菜单 上面写着运行
  • 如何为 TEX 创建解析器?

    我正在寻求开发一个 TEX 解析器 现在的问题是没有上下文无关语法 也不可能有 因为它不是上下文无关语言 我听说它是 某种宏语言并且是建立在自己的基础上的 所以现在我需要指导这种宏语言具有什么样的语法以及如何在 C 中构建任何内容 我将编写
  • Spring Webflux 不明时间损失

    我们最近切换到 ExpediaGroups GraphQLlibrary https github com ExpediaGroup graphql kotlin它基于 Spring Webflux Since switching our
  • ics 文件 mime 类型

    我正在尝试将 ics 文件上传到我的网站 它是从 Mac OSX 上的 iCal 导出的 我认为 ics 文件的 mime 类型为text calendar 但由于某种原因 该文件的类型似乎是Application octet stream
  • 实体框架延迟加载的私有支持字段

    我正在使用启用了延迟加载的 Entity Framework 5 我有以下代码 private ICollection