我已经盯着这个很长时间了,看不到问题所在。

我已经使用 EF4 和 POCO 生成器生成了一些 POCO 类。

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

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

我在我的 View 项目 (WebUI) 中创建了一个公共(public)部分类。就是这个:

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; }
        }
    }
}

但是,我收到以下错误消息:



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

如果我错过了一个程序集,我不会得到任何关于它可能是什么的提示。

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

最佳答案

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

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

进一步来说,

关于asp.net-mvc - MetadataType 和 DataAnnotations 不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13538121/

10-13 06:26