我已经盯着这个看了很长时间了,我看不出问题所在。
我使用EF4和POCO生成器生成了一些POCO类。
我试图使用MetadataType属性创建“好友”类,我可以在视图(asp.net MVC)中使用这些类,并利用数据注释。
因此,我有一个域名实体(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不能隐式地将‘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中注册什么吗?谢谢
发布于 2012-11-24 04:10:26
部分类只能存在于一个项目中。
http://msdn.microsoft.com/en-us/library/wa80x488(v=vs.100).aspx
更确切地说,
所有意味着属于同一类型的部分类型定义都必须在同一个程序集和相同的模块(.exe或.dll文件)中定义。部分定义不能跨越多个模块。
https://stackoverflow.com/questions/13538121
复制相似问题