У меня есть таблица со следующими столбцами:
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.