新语言功能破坏了脚手架——无法获取 DbContext 的反射类型

New language feature breaks scaffolding - Could not get the reflection type for DbContext

所以新的语言功能实现了 shorthand 默认关键字的选项。

public void GenericMethod<T>(T responseObject = default)
{
    //Your code here
}

代替旧的

public void GenericMethod<T>(T responseObject = default(T))
{
    //Your code here
}

在使用新的 shorthand 时,我们遇到了一个错误,即无法在 dotnet 核心中构建视图或控制器。 - 给出错误 "There was an error running the selected code generator: Could not get the reflection type for DbContext : ...."

通过恢复到旧的实施方式,"default" 错误消失了。

截至目前,使用 default 关键字的新方法是我们遇到的唯一一种破坏它的方法,但我认为类似的新语言功能可能存在问题。

这不是真正的问题。我们只是认为传播这个错误的消息会很好;因为没有 post 涵盖这个问题。

Visual studio : Visual studio 2019

目标框架:.NET Core 2.2

编辑:这不是 EF 的问题。如果在您使用模型 class(FooClass) 的情况下尝试在没有 dbContext 的情况下构建视图,则错误更改为:无法获取模型的反射类型:FooClass

这里有类似的问题。将其改回旧方式有效。

public static T Get<T>(this ISession session, string key)
        {
            var value = session.GetString(key);

            return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);
        }
public static T Get<T>(this ISession session, string key)
        {
            var value = session.GetString(key);

            return value == null ? default : JsonConvert.DeserializeObject<T>(value);
        }