创建部分类时发生错误
我正在开发MVC应用程序,其中,我试图创建由MVC应用程序生成的部分类让位置类说。创建部分类时发生错误
现在我想在新的类文件中创建位置类的部分类。
以下类代码由位置代码的MVC自动生成。
namespace CRM
{
public partial class Location
{
public int Id { get; set; }
public string Name { get; set; }
public string Remark { get; set; }
}
}
我已经加入其中包含部分类上述文件的新的类文件
namespace CRMEntities.Partial_Class
{
public interface ILocation
{
[StringLength(50, ErrorMessage = "Region can accept maximum 50 characters.")]
string Region { get; set; }
[Key]
int Id { get; set; }
[Required]
string Name { get; set; }
string Remark { get; set; }
}
public partial class Location : ILocation
{
}
}
它给下面的错误... CRMEntities.Partial_Class.Location' does not implement interface member 'CRMEntities.Partial_Class.ILocation.Name
你不显示在您的问题中定义了ILocation
,但错误表示Location.Name
属性声明与ILocation.Name
成员不同。
编辑:您的两个部分类似乎在两个不同的命名空间中,因此它们实际上是两个完全不同的类,而不是同一类的两个部分。这将解释编译器错误。
话虽如此,我同意其他答案(+1!),您应该在视图模型上进行UI验证。
首先,你不需要这样做,我的理解是你试图做验证的权利?想想看,由EF生成的对象不是ViewModel,它们是域模型。数据注释应该在视图模型中,而不是域模型。
大多数情况下,经常误用的是使用领域模型作为视图模型,但它不太正确。因为有时候,视图模型需要多个域模型来为您的UI提供数据。
因此,为了分离问题,您需要定义与视图模型不同的视图模型。 例如:您有Location类,您需要添加LocationViewModel类并将数据注释放在此处。
您可以手动映射或使用AutoMapper来映射View Model和Domain Model。 另一个解决方案是你可以使用Fluent Validation,用这种方式,不用为了验证而有更多的部分类。
嘿,谢谢,你能告诉我怎么做的步骤?我第一次这样做。 – nilesh1foru 2012-08-06 06:24:43
您需要使用EF生成的模型分别创建View Model。然后,看看:http://www.codeproject.com/Articles/61629/AutoMapper如何将视图模型映射到模型。然后,但视图模型上的偏差 – 2012-08-06 08:19:37
请现在检查... – nilesh1foru 2012-08-04 12:45:14