これらのエラーを解決するにはどうすればよいですか:
使用ツール:VS 2012、Entity Framework 5.0.0、T4MVCExtensions 3.5.0、.NET Framework 4.5
大規模なMVCソリューション内のプロジェクトでEFおよびT4テンプレートを問題なく使用しています。さて、edmxダイアグラムを右クリックすると、EFは次のメッセージで応答します。値は期待される範囲内にありません。 EFプロジェクトをコンパイルすると、次のメッセージで応答します。
データベース内のすべてのテーブルには主キーがあります。この問題が突然現れたのには驚かされます。誰もこの問題を解決する方法を提案していますか?
前もって感謝します、
アーノルド
VS 2012では、EF.Utility.CS.ttincludeファイルは、Microsoft Web Developer Toolsまたは-の場合にのみインストールされますMicrosoft SQL Serverデータツールコンポーネントが選択されています。
私は非常に似た問題を抱えていたので、VS2012とVS2013で試しました。
Entity Framework 6 Tools for Visual Studio 2012を再インストールした後 http://www.Microsoft.com/en-us/download/confirmation.aspx?id=40762 すべてが正常に戻りました。
Visual Studio 2012のEntity Framework 6ツールの再インストール http://www.Microsoft.com/en-us/download/confirmation.aspx?id=40762 work for me
VS2017では、EF6.Utility.CS.ttincludeをモデルのフォルダーに追加しました。これでMySqlとEFの問題が解決しました。
ファイルが見つかりました:C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF6.Utility.CS.ttinclude
[〜#〜] update [〜#〜]上記を回避するために、エンティティを完全に削除してから追加し直すと問題が修正されました。
Visual Studio 2017
テストプロジェクトでのみ同じエラーが発生していました。テストプロジェクトとそのファイルを正常に参照している他のプロジェクトを確認した後、失敗したプロジェクトのapp.configに次を追加すると問題が解決したことがわかりました
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.Microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<connectionStrings>
私の場合、問題の原因は奇妙なフォルダー名(スペースではなく%20
)でした。 %20
の代わりにスペースを使用して同じフォルダーにディレクトリジャンクションを作成したところ、問題が解決しました。
ジャンクションの作成に使用したPowerShellコマンドは次のとおりです。
cd "c:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\"
mklink /j "Entity Framework Tools" "Entity%20Framework%20Tools"
Junction created for Entity Framework Tools <<===>> Entity%20Framework%20Tools
その後、ls
を使用してディレクトリの内容を見ると、次の2行が表示されます(簡潔にするために編集されています)。
Mode LastWriteTime Length Name
---- ------------- ------ ----
...
d----l 2/27/2019 9:57 AM Entity Framework Tools
d----- 2/26/2019 12:24 PM Entity%20Framework%20Tools
...
モードでは、l
は「リンク」(別名ジャンクション)であることを示し、d
はそれがディレクトリであることを示します。フォルダーの名前を変更する代わりにジャンクションを作成することにより、両方のディレクトリ名が常に機能することを確認できます。
Professionalでこの機能が既に機能している後、VS2017 Enterpriseを最近インストールしたときにこの問題が発生しました。
解決策は次のとおりです。
おそらくEF6が既にインストールされており、これを機能させるために再インストールする必要がないことに注意する価値があります。
これらの手順を完了してVisual Studioを起動すると、エラーはなくなり、クラスを正常に生成することができました。お役に立てれば!
上記のすべてのソリューションが機能しなかったため、新しいプロジェクトを作成して問題が解決するかどうかを確認しましたが、新しく作成したプロジェクトでエラーは発生しませんでした。次に、プロジェクトを古いバックアップと比較して、最近行われた変更を確認し、問題を見つけました。私は最近パッケージClarius.TransformOnBuildをアップグレードしましたパッケージをダウングレードした後、より新しいバージョンにエラーがなくなりました。