私は長い間これを見つめていました、そして問題を見ることができません。
EF4とPOCOジェネレーターを使用していくつかのPOCOクラスを生成しました。
私はMetadataType属性を使用して、ビュー(asp.net MVC)で使用できる「バディ」クラスを作成し、データ注釈を利用しようとしています。
つまり、Contactというドメインエンティティ(POCO)があります。これは、名前空間BreakAwayEntitiesのBreakAwayEntitiesというプロジェクトにあります。
ビューのプロジェクト(WebUI)でパブリック部分クラスを作成しました。これです:
namespace BreakAwayEntities
{
[MetadataType(typeof(ContactMetadataSource))]
public partial class Contact
{
internal sealed class ContactMetadataSource
{
[HiddenInput(DisplayValue = false)]
public int ContactID { get; set; }
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Display(Name = "Last Name")]
public string LastName { get; set; }
public string Title { get; set; }
}
}
}
ただし、次のエラーメッセージが表示されます。
エラー10タイプ'System.Collections.Generic.List[c:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0\mscorlib.dll]'を'System.Collections.Genericに暗黙的に変換できません。リスト[c:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ mscorlib.dll]'F:\ Code \ Sandpit \ GetAwayBreaks \ WebUI \ Controllers \ CustomerController.cs 29 38 WebUI
何らかの理由で、配線が機能していません。部分クラスの名前空間は同じですが、異なるプロジェクトにあります。それは問題ではないのですか?ビューで使用される場合のContactクラスは、単一のプロパティを表示しません。MetadataTypeによって拡張されたように、POCOのすべてのプロパティを公開する必要があります。
アセンブリが欠落している場合、それが何であるかについてのヒントが得られません。
私は何を逃しましたか?Global.asaxに何かを登録する必要がありますか?ありがとう