Ho una classe chiamata 'Article' in un progetto chiamato 'MyProject.Data', che funge da layer di dati per la mia applicazione web.
Ho un progetto separato chiamato "MyProject.Admin", che è un sistema di amministrazione basato sul web per la visualizzazione / modifica dei dati, ed è stato creato utilizzando ASP.NET Dynamic Data.
Fondamentalmente voglio estendere la classe Article, usando una classe parziale, in modo da poter aumentare una delle sue proprietà con un extender "UIHint", che mi permetterà di sostituire la normale casella di testo multilinea con un controllo FCKEdit.
La mia classe parziale ed extender sarebbe simile a questa:
[MetadataType(typeof(ProjectMetaData))]
public partial class Project
{
}
public class ProjectMetaData
{
[UIHint("FCKeditor")]
public object ItemDetails { get; set; }
}
Ora tutto funziona bene se la classe parziale si trova nello stesso progetto della classe parziale originale, ovvero il progetto MyProject.Data.
Ma il comportamento dell'interfaccia utente non dovrebbe trovarsi nel livello dati, ma piuttosto nel livello amministratore. Quindi voglio spostare questa classe su MyProject.Admin.
Tuttavia, se lo faccio, la funzionalità viene persa.
La mia domanda fondamentale è: posso avere 2 classi parziali in progetti separati, ma entrambi riferiti alla stessa "classe"?
In caso contrario, c'è un modo per realizzare ciò che sto cercando di fare, senza mescolare la logica del livello dati con la logica dell'interfaccia utente?
MetadataType
rende i modelli più simili a ViewModels.