The highest performance is gained when using an integer or long primary key in a database. Some legacy databases may require the use of composite keys. Implement an IsNew property on your class so that it can be determined when an insert or update needs to occur. See Using IsNew for more information.
<CompositeKey>
Public
Property Region() As String<CompositeKey>
Public
Property Salesman() As StringDim db As IDataHelper = DataHelper.SessionFactory()
Dim
table As New Table(GetType(SalesPeople))table.TableName =
"SalesPeople"Dim
field As New Field(table, "Salesman", "Salesman")field.IsCompositeKey =
Truetable.Fields.Add(field)
field =
New Field(table, "Region", "Region")field.IsCompositeKey =
Truetable.Fields.Add(field)
db.Mapper.ObjectMap.Add(
GetType(Person), table)<Table>
<MappingFromDatabase>false</MappingFromDatabase>
<Schema />
<ClassTypeString>Models.SalesPeople, NET-Data-Access-Layer-Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</ClassTypeString>
<ClassName>SalesPeople</ClassName>
<TableName>SalesPeople</TableName>
<Fields>
<Field>
<ColumnName>Salesman</ColumnName>
<PropertyInfoString>Salesman</PropertyInfoString>
<FieldTypeString>System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</FieldTypeString>
<DatabaseType>string</DatabaseType>
<Unique>false</Unique>
<AllowDbNull>false</AllowDbNull>
<IsPrimaryKey>false</IsPrimaryKey>
<KeyType xsi:nil="true" />
<IsReadOnly>false</IsReadOnly>
<Length xsi:nil="true" />
<IsCompositeKey>true</IsCompositeKey>
<IsMaintenanceField>false</IsMaintenanceField>
</Field>
<Field>
<ColumnName>Region</ColumnName>
<PropertyInfoString>Region</PropertyInfoString>
<FieldTypeString>System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</FieldTypeString>
<DatabaseType>string</DatabaseType>
<Unique>false</Unique>
<AllowDbNull>false</AllowDbNull>
<IsPrimaryKey>false</IsPrimaryKey>
<KeyType xsi:nil="true" />
<IsReadOnly>false</IsReadOnly>
<Length xsi:nil="true" />
<IsCompositeKey>true</IsCompositeKey>
<IsMaintenanceField>false</IsMaintenanceField>
</Field>
</Fields>
</Table>