7

現在、VisualStudio11ベータ版を使用したチュートリアルを行っています。私のクラスの1つでフィールド値の最大長を設定しようとすると、次のようになります。

[MaxLength(50)]
public string LastName { get; set; }

MaxLength()関数が2つの場所に存在するため、エラーが発生し、コンパイルできません。

エラー4タイプ' System.ComponentModel.DataAnnotations.MaxLengthAttribute 'は、'c:\ Users \ me \ Documents \ Visual Studio 11 \ ContosoUniversity \ packages \ EntityFramework.4.1.10331.0 \ lib \ net40\EntityFramework.dll'と'の両方に存在しますc:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5 \ System.ComponentModel.DataAnnotations.dll '

私は両方のファイルを削除しようとしましたが、私のプロジェクトの他のコードがそれらに依存しているため、それはより多くの問題を引き起こします。

どちらかを使用するように指示する方法はありますか?

これらのアプローチのすべてが私にはうまくいかないようです..回答の下のコメントを参照してください..他のアイデアはありますか?

ありがとう

4

7 に答える 7

6

コードの先頭で使用する:

using MaxLength = System.ComponentModel.DataAnnotations
于 2012-05-31T20:38:05.060 に答える
6

パッケージからEntityFrameworkをアンインストールして、再インストールするだけです(EntityFramework)。わたしにはできる。以下の手順に従ってください。

1.参照を右クリックします2.nugetpackagesの管理をクリックします

1.参照を右クリックします。2。nugetpackagesの管理をクリックします。

3.[アンインストール]をクリックします

3.[アンインストール]をクリックします

  1. オンラインセクションに移動し、検索ボックスにエンティティフレームワークと入力します。5。インストールボタンをクリックします。

4.オンラインセクションに移動し、検索ボックスにエンティティフレームワークと入力します。5。インストールボタンをクリックします。

于 2016-08-16T08:45:35.247 に答える
3

目的の名前空間で属性を修飾します

[System.ComponentModel.DataAnnotations.MaxLength(50)]
public string LastName { get; set; } 
于 2012-05-31T21:01:03.890 に答える
2

最新の環境(VS 2017 / .NET Framework 4.6.x)で、6.1や6.2などのentityframeworksで同じエラーが発生する場合は、次の解決策があります。

entityframeworkを6.0にダウングレードします。それは動作します。

于 2018-02-22T03:54:51.190 に答える
1

MaxLengthは関数ではなく、属性です。
各ファイルでusingディレクティブを使用して、現在の正しいコンテキストを指定できます。
または、完全な名前空間を入力します。例:System.ComponentModel.DataAnnotations.MaxLength

于 2012-05-31T20:40:37.400 に答える
1

externエイリアスhttp://msdn.microsoft.com/en-us/library/ms173212.aspxを使用して、2つのアセンブリを区別してみてください

また、ページの下部にあるhttp://bartdesmet.net/blogs/bart/archive/2006/10/07/4502.aspxも一例です。

于 2012-05-31T20:45:17.140 に答える
1

この質問は現在、この質問の上位のSO回答であるため、ここで一般的に回答すると思いました。

The type 'BLAH' exists in bothエラーは、次の場合に頻繁に発生します。

1.重複ファイル-(多くの場合非常に単純です)これは、.dllファイルの場合によく知られています。重複のほとんどの場合、重複ファイルの1つを削除するのが最も簡単で最良の解決策です

2.重複しないファイル-(元の投稿者の場合のように、より複雑です)残念ながら、このような競合が発生しないように、ファイルの代替バージョンを編集し、頻繁に再コンパイル/検索する必要があります。幸いなことに、同じ名前空間で属性を修飾すると、このような競合が修正されることがよくあります。

たとえばMaxLength、複数のファイルで言及されていると呼ばれるものでコードが競合している場合は、必要なファイルでコードを修飾して、使用するMaxLengthを次のように明確にします System.ComponentModel.DataAnnotations.MaxLength。これは問題を解決するのに役立つはずなので、コードを実行しようとしても競合することはありません

于 2016-08-08T22:29:09.387 に答える