Старое содержимое этого ответа теперь устарело . См. Другие ответы на основе MutationObserver
.
Попробуйте это:
using System.Data.Linq.Mapping;
public partial class MyEntity: IEntity
{ [Column(Storage="IDfield", DbType="int not null", IsPrimaryKey=true)]
public int ID
{
get { return this.IDfield; }
set { this.IDfield=value; }
}
}
Для перевода вашего запроса LINQ на фактический SQL Linq2SQL осматривает выражение, которое вы его даете. Проблема в том, что вы не поставляли достаточно информации для L2, чтобы иметь возможность переводить свойство «ID» на фактическое имя столбца БД. Вы можете добиться того, что вы хотите, убедившись, что L2S может отображать «ID» на «Idfield».
Это должно быть возможно, используя подход, предусмотренный в ответах.
Если вы используете дизайнер, вы также можете просто переименовать свойство класса «Idfield» на «ID», с добавленной выгодой, которые вам не придется явно реализовать свойство «ID» в вашем частичном классе, то есть Частичное определение класса для минимальности просто становится:
public partial class MyEntity: IEntity
{
}
Это работает для меня -
public partial class MyEntity: IEntity
{ [Column(Name = "IDfield", Storage = "_IDfield", IsDbGenerated = true)]
public int ID
{
get { return this.IDfield; }
set { this.IDfield=value; }
}
}