在Visual Studio 2015中,内置的MVC视图脚手架为什么不能与包含通用id的继承基类一起使用?以下是一个简单的测试案例:
尝试使用Country实体创建脚手架视图(例如List、Create、Edit、Delete),会出现以下错误弹窗:'The method or operation is not implemented.' 如果我移除类型参数
我知道在这个简单的案例中,使用泛型基类并没有省下太多工作量。我也知道,“最佳实践”是在视图中使用视图模型而不是领域模型。但是,我想了解为什么使用具有泛型类型的基类会导致脚手架出现问题。
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
非泛型,然后我就能够创建脚手架视图。我知道在这个简单的案例中,使用泛型基类并没有省下太多工作量。我也知道,“最佳实践”是在视图中使用视图模型而不是领域模型。但是,我想了解为什么使用具有泛型类型的基类会导致脚手架出现问题。