次の列を持つテーブルがあります。
ContractorId ......... INT ............. IDENTITY
ContractorName ........ Varchar(50) ........ PK
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);
クラス コードの 2 行目で、複合キー (ContractorName + ContractorGrade) を指定する方法を知りたいです。
次に、Id 列が必要なため、レコードを挿入していません。ContractorId は IDENTITY ですが、主キーではありません。
IDENTITY列に0を挿入しているため、新しいレコードを挿入しておらず、エラーが発生します。