Я использую .NET Entity Framework. Я хочу скопировать свойства из одного EntityObject в другой. Но System.Type.GetProperties (), по-видимому, не возвращает свойства, определенные для частичного класса.
Код:
В XXX.edmx / XXX.Designer.cs, сгенерированном Visual Studio, у меня есть класс MyTable:
public partial class MyTable: EntityObject{..}
Я хочу добавить некоторые свойства в класс MyTable, поэтому я добавляю файл XXX.Manual.cs:
public partial class MyTable: EntityObject{
public string myProp{get;set;}
}
Но myTableObj.GetType().GetProperties()
не содержит myProp !!!
Как я могу получить myProp, используя отражение?
[EDIT] Я хочу прокомментировать ответ Алекса, но не знаю, почему раздел кода не отформатирован.
Да, это очень странно.
Я использую этот код для копирования свойств из Entity в другой объект:
public static void CopyTo(this EntityObject Entity, EntityObject another){
var Type = Entity.GetType();
foreach (var Property in Type.GetProperties()){
...
Property.SetValue(another, Property.GetValue(Entity, null), null);
}
}
//in some other place:
myTableObj.CopyTo(anotherTableObj);
Конечно, myTableObj & anotherTableObj имеет тип MyTable.
При отладке в метод CopyTo VS показывает, что Entity и еще один имеют тип MyTable, и я вижу Entity.myProp, another.myProp
Но свойство Property в выражении foreach просто не зацикливается на свойстве myProp!
[ПРАВИТЬ] Извините. Код выше (метод CopyTo) является копией ответа Диамандиева на другой вопрос
Но его код неверен: оператор "break" должен быть заменен на "continue": D