首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MetadataType和DataAnnotations不工作

MetadataType和DataAnnotations不工作
EN

Stack Overflow用户
提问于 2012-11-24 03:59:09
回答 1查看 2.6K关注 0票数 3

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

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

我试图使用MetadataType属性创建“好友”类,我可以在视图(asp.net MVC)中使用这些类,并利用数据注释。

因此,我有一个域名实体(POCO)称为联系人。它位于命名空间BreakAwayEntities中的一个名为BreakAwayEntities的项目中。

我在我的视图项目(WebUI)中创建了一个公共部分类。以下是:

代码语言:javascript
复制
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不能隐式地将‘Assemblies\Microsoft\Framework.NETFramework\v4.0\mscorlib.dll’c:\Program (x86)\Reference文件(X86)转换为'System.Collections.Generic.List c:\Program (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\mscorlib.dll‘F:\Code\Sandpit\GetAwayBreaks\WebUI\Controllers\CustomerController.cs 29 38 WebUI

由于某种原因,接线不起作用。部分类的命名空间是相同的,但它们在不同的项目中。这不重要吗?在视图中使用的Contact类不会显示单个属性。它应该公开POCO的所有属性,如MetadataType所增强的那样。

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-24 04:10:26

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

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

更确切地说,

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13538121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档