Дизайнер LINQ: множественные ссылки(FK) на одну таблицу
От: somesoul http://finesoul.livejournal.com/
Дата: 04.11.08 12:56
Оценка:
Мы используем LINQ.
Когда работаеш над dbml файлом в дизайнере автоматом создается DAL-классы.
У нас есть таблица которая имеет несколько ссылок(foreign keys) на таблицу Users.
Как результат автоматом создаются проперти-ассоциации User, User1, User2 ....

Кроме обалденного имени эти проперти еще и меняются местами время от времени при перегенирации.

Как образумить дизйнер? Не хочется удалять этот кусочек ручками каждый раз при перегинерации.


Пример сгенеренного кода
        [Association(Name="User_RunningPrintExtra1", Storage="_User1", ThisKey="CommentUserID", OtherKey="ID", IsForeignKey=true)]
        public User User1
        {
            get
            {
                return this._User1.Entity;
            }
            set
            {
                User previousValue = this._User1.Entity;
                if (((previousValue != value) 
                            || (this._User1.HasLoadedOrAssignedValue == false)))
                {
                    this.SendPropertyChanging();
                    if ((previousValue != null))
                    {
                        this._User1.Entity = null;
                        previousValue.RunningPrintExtras1.Remove(this);
                    }
                    this._User1.Entity = value;
                    if ((value != null))
                    {
                        value.RunningPrintExtras1.Add(this);
                        this._CommentUserID = value.ID;
                    }
                    else
                    {
                        this._CommentUserID = default(Nullable<int>);
                    }
                    this.SendPropertyChanged("User1");
                }
            }
        }
        
        [Association(Name="User_RunningPrintExtra2", Storage="_User2", ThisKey="DistriubutedAsUserID", OtherKey="ID", IsForeignKey=true)]
        public User User2
        {
            get
            {
                return this._User2.Entity;
            }
            set
            {
                User previousValue = this._User2.Entity;
                if (((previousValue != value) 
                            || (this._User2.HasLoadedOrAssignedValue == false)))
                {
                    this.SendPropertyChanging();
                    if ((previousValue != null))
                    {
                        this._User2.Entity = null;
                        previousValue.RunningPrintExtras2.Remove(this);
                    }
                    this._User2.Entity = value;
                    if ((value != null))
                    {
                        value.RunningPrintExtras2.Add(this);
                        this._DistriubutedAsUserID = value.ID;
                    }
                    else
                    {
                        this._DistriubutedAsUserID = default(Nullable<int>);
                    }
                    this.SendPropertyChanged("User2");
                }
            }
        }
linq дизайнер множественные ссылки
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.