Мы используем 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");
}
}
}