4

在 Entity Framework 6 中,我可以像这样获取类 (myModel) 的 ModelMetadata:

var modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, myModel.GetType());

如何在 .net core 1.1.1 中做同样的事情?

4

2 回答 2

5

ModelMetadataProvider 是一个 ASP.NET 功能,它与实体框架无关。IModelMetadataProvider在 ASP.NET Core 中,您可以使用内置 DI轻松注入默认实现:

public FooController(IModelMetadataProvider provider) 
{
    var metadata = provider.GetMetadataForType(typeof(model));
}
于 2017-04-10T19:48:37.973 回答
5

在 ASP.NET Core 3.0 中有EmptyModelMetadataProvider实现DefaultModelMetadataProvider哪个实现ModelMetadataProvider哪个抽象的类。我们能够简单地实例化EmptyModelMetadataProvider和调用GetMetadataForType(typeof(MyModel)),它将返回所需的元数据。我对此答案的特殊用途是测试自定义模型绑定器。

于 2019-12-11T22:10:32.080 回答