Как изменить класс PetaPoco для работы с составным ключом, состоящим из нечисловых столбцов?

У меня есть таблица со следующими столбцами:

ContractorId .... ..... INT ............. ИДЕНТИФИКАЦИЯ
Название подрядчика ........ Варчар(50) ....... П.К
ContractorGrade ....... Varchar(3) ....... PK

Класс, сгенерированный шаблоном PetaPoco T4, выглядит следующим образом:

[TableName("contractor_master")]
[PrimaryKey("contractorname", autoIncrement=false)]
[ExplicitColumns]
public partial class contractor_master : TubewellRepo.Record<contractor_master>  
{
    [Column] 
    public int contractorid 
    { 
        get
        {
            return _contractorid;
        }
        set
        {
            _contractorid = value;
            MarkColumnModified("contractorid");
        }
    }
    int _contractorid;

    [Column] 
    public string contractorname 
    { 
        get
        {
            return _contractorname;
        }
        set
        {
            _contractorname = value;
            MarkColumnModified("contractorname");
        }
    }
    string _contractorname;

    [Column] 
    public string contractorgrade 
    { 
        get
        {
            return _contractorgrade;
        }
        set
        {
            _contractorgrade = value;
            MarkColumnModified("contractorgrade");
        }
    }
    string _contractorgrade;
  }

Ниже приведен код для ВСТАВКИ новой записи:

// Insert a record
var Contractor=new contractor_master();
Contractor.contractorname = "Super Borewells";
Contractor.contractorgrade = "A";

db.Insert(Contractor);

Во второй строке кода класса я хочу знать, как указать составной ключ, то есть (ContractorName + ContractorGrade).

Во-вторых, он не вставляет запись, потому что ожидает столбец идентификаторов. Несмотря на то, что ContractorId является IDENTITY, это не первичный ключ.

НЕ ВСТАВЛЯЕТСЯ новая запись и выдает ошибку, поскольку вставляется 0 в столбец IDENTITY.

8
задан RKh 23 June 2012 в 11:29
поделиться