是否有可能在實體框架做一個自定義的轉換器的方法,通過顯式轉換爲整數轉換成實體?從整數到實體的顯式轉換?
我做了這方面的一些研究,我不知道從哪裏開始。
這裏是什麼,我試圖做一個例子。
int activeTeacherId = 38;
Teacher activeTeacher = (Teacher)activeTeacherId;
編輯1一些快速的研究之後,我想通了,我可能需要做一些與EntityObject如果我需要的一切是真正的通用性和靈活性。但是,我不知道如何。
編輯2從我自己的經驗,我設法創建以下代碼。但是,由於顯而易見的原因,我無法在靜態環境中獲得「this」。
如果我能以某種方式獲取它所轉換的對象的類型(因爲它並不總是被轉換成一個EntityObject,但有時候是一個Person或一個Teacher),那麼理論上它就可以工作。
public class EntityObject : System.Data.Objects.DataClasses.EntityObject
{
public static explicit operator EntityObject(int id)
{
var container = ModelContainer.Instance;
var thisType = this.GetType(); //this can't be done from a static context, so how do we retrieve the type that we are converting into?
var containerType = typeof (ModelContainer);
dynamic setProperty = typeof (ModelContainer).GetProperty(thisType.Name + "Set");
ObjectSet<dynamic> set = setProperty.GetValue(container);
return set.FirstOrDefault(o => o.Id == id);
}
}
你這樣做對CoreFirst或ModelFirst? – 2012-03-23 23:38:06
模型優先設計:) – 2012-03-23 23:38:54
是不是隻是一個導航屬性? – 2012-03-23 23:40:42