Свойства навигации EF не загружаются при подключении к методу get из частичного класса - PullRequest
0 голосов
/ 14 августа 2011

Я использую 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);
    }
}

Может ли кто-нибудь объяснить мне это поведение и, возможно, сказать, как заставить работать первый метод? Спасибо!

1 Ответ

0 голосов
/ 14 августа 2011

Случайное предположение ... но, возможно, изменение вашего свойства на не виртуальное мешает EF правильно создавать прокси ... попробуйте вместо этого сделать public virtual string PropX ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...