Я использую entity-framework с приложением asp.net mvc и использую подход, основанный на базе данных. Я немного настроил генерацию кода из edmx, чтобы можно было подключить метод get свойств моих сущностей, например так:
public partial class CA
{
private string _PropX;
partial void OnGetPropX(ref string value);
public string PropX
{
get
{
string value= _PropX;
this.OnGetPropX(ref value);
return value;
}
set
{
this._PropX= value;
}
}
public virtual CB B { get; set; }
}
Как видите, есть также свойство навигации к CB. В моем не сгенерированном частичном классе A я подключаю метод get для PropX, чтобы он возвращал свойство CB следующим образом:
public partial class CA
{
partial void OnGetPropX(ref string value)
{
if(String.IsNullOrEmpty(value))
value= this.B.PropY; // Error
}
}
Но получается, что это. В строке, отмеченной // Ошибка, всегда пусто.
Тем не менее, если я создаю новое свойство в моем не сгенерированном частичном классе CA, как показано ниже, все работает просто отлично:
public string MyPropX
{
get
{
return (String.IsNullOrEmpty(this.PropX) ? this.B.PropY: this.PropX);
}
}
Может ли кто-нибудь объяснить мне это поведение и, возможно, сказать, как заставить работать первый метод? Спасибо!