Tengo una clase llamada 'Artículo' en un proyecto llamado 'MyProject.Data', que actúa como la capa de datos para mi aplicación web.
Tengo un proyecto separado llamado 'MyProject.Admin', que es un sistema de administración basado en la web para ver / editar los datos, y fue construido usando ASP.NET Dynamic Data.
Básicamente, quiero extender la clase Article, usando una clase parcial, para poder aumentar una de sus propiedades con un extensor "UIHint", lo que me permitirá reemplazar el cuadro de texto normal de varias líneas con un control FCKEdit.
Mi clase parcial y extensor se verían así:
[MetadataType(typeof(ProjectMetaData))]
public partial class Project
{
}
public class ProjectMetaData
{
[UIHint("FCKeditor")]
public object ItemDetails { get; set; }
}
Ahora todo esto funciona bien si la clase parcial está en el mismo proyecto que la clase parcial original, es decir, el proyecto MyProject.Data.
Pero el comportamiento de la interfaz de usuario no debería estar en la capa de datos, sino en la capa de administración. Entonces quiero mover esta clase a MyProject.Admin.
Sin embargo, si hago eso, la funcionalidad se pierde.
Mi pregunta fundamental es: ¿puedo tener 2 clases parciales en proyectos separados, pero ambas se refieren a la misma "clase"?
Si no, ¿hay alguna manera de lograr lo que estoy tratando de hacer, sin mezclar la lógica de la capa de datos con la lógica de la interfaz de usuario?
MetadataType
hace que los modelos se parezcan más a ViewModels.