Saya memiliki kelas yang disebut 'Artikel' dalam proyek yang disebut 'MyProject.Data', yang bertindak sebagai lapisan data untuk aplikasi web saya.
Saya memiliki proyek terpisah yang disebut 'MyProject.Admin', yang merupakan sistem admin berbasis web untuk melihat / mengedit data, dan dibangun menggunakan ASP.NET Dynamic Data.
Pada dasarnya saya ingin memperluas kelas Artikel, menggunakan kelas parsial, sehingga saya dapat menambah salah satu propertinya dengan ekstensi "UIHint", yang akan memungkinkan saya untuk mengganti kotak teks multi-baris normal dengan kontrol FCKEdit.
Kelas parsial dan ekstender saya akan terlihat seperti ini:
[MetadataType(typeof(ProjectMetaData))]
public partial class Project
{
}
public class ProjectMetaData
{
[UIHint("FCKeditor")]
public object ItemDetails { get; set; }
}
Sekarang ini semua berfungsi dengan baik jika kelas parsial dalam proyek yang sama dengan kelas parsial asli - yaitu proyek MyProject.Data.
Tapi perilaku UI seharusnya tidak duduk di lapisan Data, melainkan di lapisan Admin. Jadi saya ingin memindahkan kelas ini ke MyProject.Admin.
Namun, jika saya melakukan itu, fungsinya hilang.
Pertanyaan mendasar saya adalah: dapatkah saya memiliki 2 kelas parsial dalam proyek terpisah, tetapi keduanya merujuk pada "kelas" yang sama?
Jika tidak, apakah ada cara untuk mencapai apa yang saya coba lakukan, tanpa mencampur logika data-layer dengan logika UI?
MetadataType
membuat Model lebih seperti ViewModels.