新的语言功能打破了脚手架-无法获得DbContext的反射类型

时间:2019-05-16 08:11:15

标签: c# visual-studio default-value scaffolding

因此,新的语言功能实现了简化默认关键字的选项。

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

代替原来的

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

使用新的速记时,我们遇到了一个错误,即一个人无法在dotnet核心中搭建视图或控制器。 -给出错误“运行所选代码生成器时出错:无法获取DbContext的反射类型:...。”

通过回到实现“默认”的旧方法,错误消失了。

从这一刻开始,使用default关键字的新方法是我们唯一尝试破坏它的方法,但是我认为类似的新语言功能可能会出现问题。

这不是一个真正的问题。我们只是认为最好传播这个bug的消息。由于没有任何一篇报道涉及此问题。

Visual Studio:Visual Studio 2019

目标框架:.NET Core 2.2

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

1 个答案:

答案 0 :(得分:1)

此处是类似问题。将其更改回旧的工作方式。

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);
        }