C# 实体框架6找不到<;的CLR类型;型号>&书信电报;实体>;

C# 实体框架6找不到<;的CLR类型;型号>&书信电报;实体>;,c#,asp.net,.net,entity-framework,entity,C#,Asp.net,.net,Entity Framework,Entity,我有一个web应用程序,asp.net web form 4.5 C#,首先是EF6 DB, 我用了将近一年的时间来做这件事,直到今天,一切都很好,我尝试向edmx添加一个新视图,从数据库更新。 添加的表没有错误,但代码中的表不可见,如果尝试附加到EntityDataSource,则会收到消息“找不到的CLR类型。” 我已经看到代码生成策略设置为T4。 如果我改为“Legacy ObjectContext”,新实体在代码中正确显示,EntityDataSource工作正常,我完全可以看到关联的g

我有一个web应用程序,asp.net web form 4.5 C#,首先是EF6 DB, 我用了将近一年的时间来做这件事,直到今天,一切都很好,我尝试向edmx添加一个新视图,从数据库更新。 添加的表没有错误,但代码中的表不可见,如果尝试附加到EntityDataSource,则会收到消息“找不到的CLR类型。

我已经看到代码生成策略设置为T4。 如果我改为“Legacy ObjectContext”,新实体在代码中正确显示,EntityDataSource工作正常,我完全可以看到关联的gridview, 但如果我尝试导航到其他页面,在那里我可以访问其他“旧”实体,我会收到几行错误:

指定的架构无效。错误: CLR类型到EDM类型的映射不明确,因为多个CLR类型与EDM类型“报告”匹配。以前找到的CLR类型为“Report”,新找到的CLR类型为“AppNameModel.Report”。 CLR类型到EDM类型的映射不明确,因为多个CLR类型与EDM类型“Customer”匹配。以前找到的CLR类型为“Customer”,新找到的CLR类型为“AppNameModel.Customer”。 ..依此类推之前创建的所有实体(最后一个实体未列出,并与遗留objCtx策略一起使用!)

那么EF有什么问题??!我已经阅读了所有关于堆栈溢出的问答,但似乎没有一个解决方案

我将在web.config中添加一些内容:

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />


以下是edmx的属性:

当我使用T4策略添加视图时,实际上,视图不存在于定义实体的任何文件中,仅显示在emdx可视化设计器上。我已经签入了文件.cs和in.context.cs


请给一些输入,我必须看的地方,我怎样才能确定…一些方向!谢谢

我还没有发现问题的原因,我已经找到了解决办法:

在与edmx关联的两个.tt文件上运行自定义工具。
这两个文件保存自动生成的代码,如果自动生成不再工作,运行自定义工具,您将强制它根据您的edmx型号更新代码。

我刚刚遇到与您相同的错误消息。问题似乎是我对模型类做了一些更改,但没有更新其余的自动生成代码。正如您所提到的,运行自定义工具强制进行更新,因此也解决了我的问题。谢谢对不起,我不是有意投+1或-1。。。它不让我撤销。这个特定的修复对我不起作用,但我很高兴它对其他人起到了作用:)奇怪的是,我仍然可以创建脚手架视图,但不能创建脚手架控制器。你真了不起!非常感谢你!这对我有用。
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="v11.0" />
  </parameters>
</defaultConnectionFactory>
<providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>