MetadataType和DataAnnotations无法正常工作

one*_*ill 3 asp.net-mvc poco metadatatype data-annotations

我已经盯着这个很长一段时间了,看不出问题.

我使用EF4和POCO生成器生成了一些POCO类.

我正在尝试使用MetadataType属性来创建我可以在我的View(asp.net MVC)中使用的"伙伴"类,并利用数据注释.

所以,我有一个名为Contact的域实体(POCO).这是在命名空间BreakAwayEntities中名为BreakAwayEntities的项目中.

我在View的项目(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; }
        }        
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我被处理以下错误消息:

错误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

由于某种原因,接线不起作用.部分类的名称空间是相同的,但它们位于不同的项目中.那应该没关系?在View中使用的Contact类不会显示单个属性.它应该暴露POCO的所有属性,由MetadataType增强.

如果我错过了一个集会,我没有得到任何关于它可能是什么的暗示.

我错过了什么?我需要在Global.asax中注册一些东西吗?谢谢

Dav*_*Dev 5

部分类只能存在于一个项目中.

http://msdn.microsoft.com/en-us/library/wa80x488(v=vs.100).aspx

进一步来说,

必须在同一个程序集和相同的模块(.exe或.dll文件)中定义所有部分类型定义,即相同类型的部分.部分定义不能跨越多个模块.