这是打字错误吗?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 _MyEntities => new MyEntities();
和
private MyEntities _MyEntities = new MyEntities();
第一个示例是使用C#语法,使用表达式体对只读属性使用C#语法。它是在C#5及以前版本中执行以下操作的简写:
private MyEntities _MyEntities { get { return new MyEntities(); } }
它与private MyEntities _MyEntities = new MyEntities()
:有三个不同
- 它是只读的。您的更改允许更改字段。这可以通过
private readonly MyEntities _MyEntities = new MyEntities()
来解决 - 该属性正在使用延迟加载。只有在使用该属性时才会对其进行初始化。使用字段的新版本将在创建对象时初始化。这可能是一个非常重要的变化;或者它可能没有效果,这取决于调用
MyEntities
构造函数时发生的情况 - 对该属性的每次调用都将创建一个新的
MyEntities
实例。您的字段备选项将始终返回相同的MyEntities
实例。这可能是作者故意的,也可能是一个潜在的错误