这是打字错误吗?private_MyEntities=>;new MyEntities();

本文关键字:MyEntities gt new 错误 private | 更新日期: 2023-09-27 18:25:00

我正在修复一些继承代码中的一个错误。有一个类具有一个模块范围的变量,该变量是实体框架DataContext。

问题是数据没有保存到数据库中。当我改变这个。。。

private _MyEntities => new MyEntities();

对此。。。

private _MyEntities = new MyEntities();

一切都很好。但我担心开发人员可能出于我遗漏的某种原因故意使用了'=>'。

这是打字错误还是应该是在做我不明白的事情?

提前谢谢。

这是打字错误吗?private_MyEntities=>;new MyEntities();

首先,这两行都不会按原样编译

private MyEntities _MyEntities => new MyEntities();

private MyEntities _MyEntities = new MyEntities();

第一个示例是使用C#语法,使用表达式体对只读属性使用C#语法。它是在C#5及以前版本中执行以下操作的简写:

private MyEntities _MyEntities { get { return new MyEntities(); } }

它与private MyEntities _MyEntities = new MyEntities():有三个不同

  1. 它是只读的。您的更改允许更改字段。这可以通过private readonly MyEntities _MyEntities = new MyEntities()来解决
  2. 该属性正在使用延迟加载。只有在使用该属性时才会对其进行初始化。使用字段的新版本将在创建对象时初始化。这可能是一个非常重要的变化;或者它可能没有效果,这取决于调用MyEntities构造函数时发生的情况
  3. 对该属性的每次调用都将创建一个新的MyEntities实例。您的字段备选项将始终返回相同的MyEntities实例。这可能是作者故意的,也可能是一个潜在的错误