Разве это не неправильная генерация кода? Не следует ли вместо этого использовать LoadAndCloseReader?
#region PrimaryKey Methods
public PublicationItemCollection PublicationItemRecords()
{
return new PublicationItemCollection().Where(PublicationItem.Columns.ItemID, ItemID).Load();
}