MVC视图脚手架与通用基类不兼容,无法正常工作?

5
在Visual Studio 2015中,内置的MVC视图脚手架为什么不能与包含通用id的继承基类一起使用?以下是一个简单的测试案例:
public abstract class BaseEntity
{
}

public abstract class Entity<TKey> : BaseEntity
{
    public TKey Id { get; set; }
}

public class Country : Entity<int>
{
    public string Name { get; set; }
    public string CountryCode { get; set; }
}

尝试使用Country实体创建脚手架视图(例如List、Create、Edit、Delete),会出现以下错误弹窗:'The method or operation is not implemented.' 如果我移除类型参数TKey并通过为Id定义固定类型使Entity非泛型,然后我就能够创建脚手架视图。
我知道在这个简单的案例中,使用泛型基类并没有省下太多工作量。我也知道,“最佳实践”是在视图中使用视图模型而不是领域模型。但是,我想了解为什么使用具有泛型类型的基类会导致脚手架出现问题。
1个回答

3
我也遇到了这个错误,并发现它已经在Microsoft Connect上报告。目前我们似乎只有以下两个选项:
  • 通过暂时删除继承,从控制器生成视图(虽然不是一个好主意,但可以避免浪费大量时间)
  • 等待Microsoft修复
注意:看起来同样的问题也影响了Visual Studio 2013(更新5),但我没有找到任何的bug跟踪条目。
如果您想要关注错误修复的进展或向支持团队提供更多信息,您可以访问Microsoft的bug跟踪器: https://connect.microsoft.com/VisualStudio/feedback/details/2187798/mvc-view-scaffolding-not-working

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