0

MyController:ModelDrivenControllerBase<EcoProject1EcoSpace>mvc 或 webapi netcore 项目中的代码显示错误"the type 'MDrivenTemplateProj.EcoProject1EcoSpace' cannot be used as type parameter 'ESType' in the generic type or method 'ModelDrivenControllerBase<ESType>'. There is no implicit reference conversion from 'MDrivenTemplateProj.EcoProject1EcoSpace' to 'Eco.Handles.DefaultEcospace"+ 烦人的add ref to the 'MDriven.Handles.netStandard, version=7.0.0.0, culture=neutral, publickeytoken=null'. (始终是 7.0.0.0 版!
您能否告知如何避免此类错误?
我正在尝试使用 NetFramework 4.x 开发具有参考 MDrivenEcoSpaceAndModelForNetStandard 项目的 webapi netcore 3.1 应用程序。经验。
似乎对于 netcore 项目来说这是错误的方式。
谢谢!

4

2 回答 2

1

nuget 上针对 .netStandard2.1 和 .net5 的全新 MDriven 包现已推出。它们具有正确的构建版本号,并且在包中比旧的 Eco 包更细化。

https://wiki.mdriven.net/index.php/MVC

https://www.nuget.org/packages?q=MDriven *

于 2021-10-11T17:03:05.383 回答
0

旧样式仍然有效:

  1. 参考您的 netcore webapi 中的 MDrivenEcoSpaceAndModelForNetStandard 项目
  2. 将 ControllerBase 作为 MVC 控制器的基类
  3. 在控制器的构造函数中创建并激活新的生态空间
_es = new MDrivenTemplateProj.EcoProject1EcoSpace();_es.Active = true;  
  1. 如果你想使用虚拟机,你可以调用 CreateFromViewModel 方法,例如。
var vmc = Eco.ViewModel.Runtime.ViewModelHelper.CreateFromViewModel("SampleViewModel", this._es, null, false);  

MDrivenEcoSpaceAndModelForNetStandard 项目中仍需要手动修复:

  • EcoProject1EcoSpace.Designer.cs - this.persistenceMapperSharer1.MapperProviderTypeName 自动生成的值不正确
  • EcoProject1PMP.Designer.cs - this.EcoSpaceTypeName 自动生成的值不正确
  • 准备好您在 VS EcoProject 建模器中的构建在上述修复后将无法启动持久性。它会显示“没有找到合适的构造函数”消息
于 2021-10-10T11:12:55.733 回答