I'll use the names from one of the the table/entity we have problems with:
Database table name: dktVrstaDokumenta_Statusi
Column order in the database (order of the fields when we fetch them using the "select * from dktVrstaDokumenta_statusi" in the Sql Query Analyzer):
1. Id (Pk)
2. Vdk_Id (Fk to the table dktVrsteDokumenata)
3. Oznaka (varchar - Uk)
4. Rbr (Int)
5. Naziv (Varchar)
6. StatusStavke (bit)
7. KorisnikUnosa (varchar)
8. VrijemeUnosa (datetime)
9. KorisnikPromjene (Varchar)
10.VrijemePromjene (datetime)
11.Timestamp
12.ProvjeraPrava (bit)
The columns appear in the same order in the Sql Server Enterprise Manager Table designer.
This table is mapped in the "VrstaDokumenta_Status" entity. Order of the columns for this entity in LLBLGen is as follows
1. Id (Pk)
2. Vdk_Id (Fk to the table dktVrsteDokumenata)
3. Oznaka (varchar - Uk)
4. Naziv (Varchar)
5. StatusStavke (bit)
6. KorisnikUnosa (varchar)
7. VrijemeUnosa (datetime)
8. KorisnikPromjene (Varchar)
9. VrijemePromjene (datetime)
10.Timestamp
11.Rbr (Int)
12.ProvjeraPrava (bit)
So, the Rbr field is in the 11th place in the LLBL, not in 4th (as in the database)
EntityFieldFactory create method:
/// <summary> Creates a new IEntityField2 instance for usage in the EntityFields object for the VrstaDokumenta_StatusEntity. Which EntityField is created is specified by fieldIndex</summary>
/// <param name="fieldIndex">The field which IEntityField2 instance should be created</param>
/// <returns>The IEntityField2 instance for the field specified in fieldIndex</returns>
public static IEntityField2 Create(VrstaDokumenta_StatusFieldIndex fieldIndex)
{
IEntityField2 fieldToReturn = null;
switch(fieldIndex)
{
case VrstaDokumenta_StatusFieldIndex.Id:
fieldToReturn = new EntityField2("Id", "VrstaDokumenta_StatusEntity", typeof(System.Decimal), TypeDefaultValue.GetDefaultValue(typeof(System.Decimal)), true, (int)fieldIndex, 0, 0, 15, false, true, false);
break;
case VrstaDokumenta_StatusFieldIndex.Vdk_Id:
fieldToReturn = new EntityField2("Vdk_Id", "VrstaDokumenta_StatusEntity", typeof(System.Decimal), TypeDefaultValue.GetDefaultValue(typeof(System.Decimal)), false, (int)fieldIndex, 0, 0, 15, true, false, false);
break;
case VrstaDokumenta_StatusFieldIndex.Oznaka:
fieldToReturn = new EntityField2("Oznaka", "VrstaDokumenta_StatusEntity", typeof(System.String), TypeDefaultValue.GetDefaultValue(typeof(System.String)), false, (int)fieldIndex, 10, 0, 0, false, false, false);
break;
case VrstaDokumenta_StatusFieldIndex.Naziv:
fieldToReturn = new EntityField2("Naziv", "VrstaDokumenta_StatusEntity", typeof(System.String), TypeDefaultValue.GetDefaultValue(typeof(System.String)), false, (int)fieldIndex, 100, 0, 0, false, false, false);
break;
case VrstaDokumenta_StatusFieldIndex.StatusStavke:
fieldToReturn = new EntityField2("StatusStavke", "VrstaDokumenta_StatusEntity", typeof(System.Boolean), TypeDefaultValue.GetDefaultValue(typeof(System.Boolean)), false, (int)fieldIndex, 0, 0, 1, false, false, false);
break;
case VrstaDokumenta_StatusFieldIndex.KorisnikUnosa:
fieldToReturn = new EntityField2("KorisnikUnosa", "VrstaDokumenta_StatusEntity", typeof(System.String), TypeDefaultValue.GetDefaultValue(typeof(System.String)), false, (int)fieldIndex, 128, 0, 0, false, false, false);
break;
case VrstaDokumenta_StatusFieldIndex.VrijemeUnosa:
fieldToReturn = new EntityField2("VrijemeUnosa", "VrstaDokumenta_StatusEntity", typeof(System.DateTime), TypeDefaultValue.GetDefaultValue(typeof(System.DateTime)), false, (int)fieldIndex, 0, 3, 23, false, false, false);
break;
case VrstaDokumenta_StatusFieldIndex.KorisnikPromjene:
fieldToReturn = new EntityField2("KorisnikPromjene", "VrstaDokumenta_StatusEntity", typeof(System.String), TypeDefaultValue.GetDefaultValue(typeof(System.String)), false, (int)fieldIndex, 128, 0, 0, false, false, false);
break;
case VrstaDokumenta_StatusFieldIndex.VrijemePromjene:
fieldToReturn = new EntityField2("VrijemePromjene", "VrstaDokumenta_StatusEntity", typeof(System.DateTime), TypeDefaultValue.GetDefaultValue(typeof(System.DateTime)), false, (int)fieldIndex, 0, 3, 23, false, false, false);
break;
case VrstaDokumenta_StatusFieldIndex.Timestamp:
fieldToReturn = new EntityField2("Timestamp", "VrstaDokumenta_StatusEntity", typeof(System.Byte[]), TypeDefaultValue.GetDefaultValue(typeof(System.Byte[])), false, (int)fieldIndex, 8, 0, 0, false, true, false);
break;
case VrstaDokumenta_StatusFieldIndex.Rbr:
fieldToReturn = new EntityField2("Rbr", "VrstaDokumenta_StatusEntity", typeof(System.Int32), TypeDefaultValue.GetDefaultValue(typeof(System.Int32)), false, (int)fieldIndex, 0, 0, 10, false, false, false);
break;
case VrstaDokumenta_StatusFieldIndex.ProvjeraPrava:
fieldToReturn = new EntityField2("ProvjeraPrava", "VrstaDokumenta_StatusEntity", typeof(System.Boolean), TypeDefaultValue.GetDefaultValue(typeof(System.Boolean)), false, (int)fieldIndex, 0, 0, 1, false, false, false);
break;
}
return fieldToReturn;
}
So, the order of the fields when we use select * statment doesn't match the order in the EntityFieldFactory (the Rbr column is in different position).