Method 'Fragment' in type 'Microsoft.EntityFrameworkCore.Design.Internal.CSharpHelper' from assembly 'Microsoft.EntityFrameworkCore.Design, Version=6.0.10.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' does not have an implementation.

.net 6项目使用EntityFrameworkCore生成Entity 和 DbContext的时候,一直报错:Method 'Fragment' in type 'Microsoft.EntityFrameworkCore.Design.Internal.CSharpHelper' from assembly 'Microsoft.EntityFrameworkCore.Design, Version=6.0.10.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' does not have an implementation.


详细错误如下:
Method 'Fragment' in type 'Microsoft.EntityFrameworkCore.Design.Internal.CSharpHelper' from assembly 'Microsoft.EntityFrameworkCore.Design, Version=6.0.10.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' does not have an implementation.


找不到原因,没有解决思路,搜索了好半天尝试了好多次终于解决,记录一下!!!

java小丑 T0 发布于3个月前

最佳解决方案

原因分析

使用EF Core生成底层代码时有的底层引用的EntityFrameworkCore相关类库与启动项目引用的EntityFrameworkCore相关类库版本不一致!!!主要是以下几个类库:
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.AspNetCore.Identity.EntityFrameworkCore

重点是:使用EF Core生成底层代码时有的底层引用的EntityFrameworkCore相关类库与启动项目引用的EntityFrameworkCore相关类库版本不一致....

这就要求所有的相关底层引用的EFCore相关类库和启动项目(一般是web)保持一致,比如我碰到的问题:

我想要在A.Repository这个类库下面生成EF底层,并且A.Repository引用的EntityFrameworkCore版本与Web一致,都是6.0.10,但是B.Repository这个类库引用的7.0版本,这就导致在A.Repository类库下无法执行EF Core生成底层的命令。


请检查项目下所有类库对于EntityFrameworkCore的引用版本是否与启动项目一致:

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.AspNetCore.Identity.EntityFrameworkCore



java小丑 T0 被采纳率100%
2022-12-01 13:05
打赏 0 0
页面统计
498 访问
0 帮助
0.00 打赏

hierror 2019 © hierror.com 京ICP备13026190号-1

通知消息
  • 暂无任何消息