新语言特性破坏了脚手架 - 无法获取DbContext的反射类型

5

新的语言功能实现了缩写默认关键字的选项。

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

与其使用旧的

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

使用新的简写方式时,我们遇到了一个bug,即无法在dotnet core中为视图或控制器搭建脚手架,会出现错误提示"There was an error running the selected code generator: Could not get the reflection type for DbContext : ...."。
通过回滚到实现“default”的旧方法,可以消除这个错误。
目前为止,我们只遇到了使用"default"关键字的新方法出现问题,但我想类似的新语言特性可能也会出现问题。
这并不是一个问题。我们只是认为传播这个bug的消息很有意义,因为没有任何文章涉及到这个问题。
Visual Studio版本:Visual Studio 2019
目标框架:.NET Core 2.2
编辑:这不是EF的问题。如果你尝试在没有dbContext的情况下为使用Model类(FooClass)的视图搭建脚手架,错误提示将变成:"Could not get the reflection type for Model: FooClass"。

你正在使用EntityFrameworkCore吗? - haim770
@haim770 这不是 EF 的问题。如果您尝试在没有 dbContext 的情况下脚手架一个视图,并且您放置了一个模型类(FooClass),则错误会更改为:“无法获取 Model: FooClass 的反射类型”。 - Saveyy
1个回答

2
类似问题在这里。将其改回旧的方式可以解决问题。最初的回答。
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);
        }

1
标记您的帖子为已解决,以明确表示有解决方案 :) 感谢您的评论! - Saveyy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接