spmetal will not generate the _ModerationStatus field because the field is not belong to the document contenttype.
you can simply write a partial class to add a ModerationStatus property manually
public partial class YOUR_DOCUMENT_CLASS
{
private System.Nullable<SPModerationStatus> _ModerationStatus;
[Microsoft.SharePoint.Linq.ColumnAttribute(Name = "_ModerationStatus", Storage = "_ModerationStatus", FieldType = "Choice")]
public System.Nullable<SPModerationStatus> ModerationStatus
{
get
{
return this._ModerationStatus;
}
set
{
if ((value != this._ModerationStatus))
{
this.OnPropertyChanging("ModerationStatus", this._ModerationStatus);
this._ModerationStatus= value;
this.OnPropertyChanged("ModerationStatus");
}
}
}
}
public enum SPModerationStatus: int {
None = 0,
Invalid = 1,
[Microsoft.SharePoint.Linq.ChoiceAttribute(Value="0")]
Approved = 2,
[Microsoft.SharePoint.Linq.ChoiceAttribute(Value="1")]
Rejected = 4,
[Microsoft.SharePoint.Linq.ChoiceAttribute(Value="2")]
Pending = 8,
[Microsoft.SharePoint.Linq.ChoiceAttribute(Value="3")]
Draft = 16,
[Microsoft.SharePoint.Linq.ChoiceAttribute(Value="4")]
Scheduled = 32,
}
this code is write just now and then paste here, without any test, but i think it will works :), i have write some similar code in my project to get the author info, and works.
good luck