У мене є клас під назвою "Article" у проекті під назвою "MyProject.Data", який виступає як рівень даних для мого веб-додатку.
У мене є окремий проект під назвою "MyProject.Admin", який є веб-системою адміністрування для перегляду / редагування даних, і був створений за допомогою ASP.NET Dynamic Data.
В основному я хочу розширити клас Article, використовуючи частковий клас, щоб я міг доповнити одну з його властивостей розширенням "UIHint", що дозволить мені замінити звичайне багаторядкове текстове поле на керування FCKEdit.
Мій частковий клас та розширювач виглядатиме так:
[MetadataType(typeof(ProjectMetaData))]
public partial class Project
{
}
public class ProjectMetaData
{
[UIHint("FCKeditor")]
public object ItemDetails { get; set; }
}
Тепер це все працює добре, якщо частковий клас знаходиться в тому ж проекті, що і вихідний частковий клас - тобто проект MyProject.Data.
Але поведінка інтерфейсу не повинна знаходитись у шарі даних, а скоріше на рівні адміністратора. Тому я хочу перенести цей клас на MyProject.Admin.
Однак якщо я це зробити, функціональність втрачається.
Моє основне питання: чи можу я мати 2 часткові класи в окремих проектах, але обидва стосуються одного і того ж «класу»?
Якщо ні, чи є спосіб зробити те, що я намагаюся зробити, не змішуючи логіку рівня даних з логікою інтерфейсу?
MetadataType
робить моделі більш схожими на ViewModels.