ฉันมีคลาสที่เรียกว่า 'บทความ' ในโครงการที่ชื่อว่า '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
แต่พฤติกรรมของ UI ไม่ควรอยู่ในชั้นข้อมูล แต่ควรอยู่ในชั้นผู้ดูแลระบบ ดังนั้นฉันต้องการย้ายคลาสนี้ไปที่ MyProject.Admin
อย่างไรก็ตามถ้าฉันทำเช่นนั้นฟังก์ชั่นจะหายไป
คำถามพื้นฐานของฉันคือ: ฉันสามารถมี 2 ส่วนบางส่วนในโครงการที่แยกต่างหาก แต่ทั้งสองอ้างถึง "ชั้น" เดียวกันได้หรือไม่
ถ้าไม่มีมีวิธีที่จะทำให้สิ่งที่ฉันพยายามทำได้สำเร็จโดยไม่ต้องผสมตรรกะของเลเยอร์ข้อมูลกับตรรกะ UI หรือไม่
MetadataType
ทำให้แบบจำลองมากขึ้นเช่น ViewModels