EDIT: I've added my successful workaround to the bottom of this answer.
This is strange... but, if I set the "Access" property to anything other than 'Public', the "set" goes away:
With "Access=Public" and "ReadOnly=True":
public bool IsLatest
{
get
{
return this._IsLatest;
}
set
{
if ((this._IsLatest != value))
{
this.OnIsLatestChanging(value);
this.SendPropertyChanging();
this._IsLatest = value;
this.SendPropertyChanged("IsLatest");
this.OnIsLatestChanged();
}
}
}
With "Access=Protected" and "ReadOnly=True":
protected bool IsLatest
{
get
{
return this._IsLatest;
}
}
I don't know why this bug exists (for me at least?) but if I get this to work (public, and readonly), I'll update this answer.
EDIT: Here's the sad workaround:
I've removed the property from my DBML file, and simply added my own "partial" class and set the column myself:
public partial class ServicerData
{
private bool _IsLatest = default(bool);
[Column(Storage = "_IsLatest", AutoSync = AutoSync.Always, DbType = "Bit NOT NULL", IsDbGenerated = true, UpdateCheck = UpdateCheck.Never)]
public bool IsLatest
{
get
{
return this._IsLatest;
}
}
}
This is not what I want to do, but there seems to be no other way.