.Net CF strongly typed DataTable a case-insensitive PK
mam takovy problem - pomoci xsdcf mam nekolik vygenerovanych strongly typed DataTable a u tabulek, kde primarni klic tvori String sloupec, mam problem s tim, ze se PK chova case-insensitive...
tj. nemuzu mit v takove tabulce najednou zaznamy s ID napr. "A" a "a" zaroven... pokud to tak v databazi mam, tak pri zavolani DataAdapterXY.Fill(DataTableXY) dojde k vyjimce "ConstraintException:Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.".
Pokud se pokusim o neco ve stylu:
[CODE]
//ITEMTYPES(ID String, Descr String)
myDS.ITEMTYPES.AddITEMTYPESRow("A", "AAA");
myDS.ITEMTYPES.AddITEMTYPESRow("a", "aaa");
[/CODE]
tak dostanu pro zmenu pri vlozeni druheho radku: "ConstraintException:Column 'ID' is constrained to be unique. Value 'a' is already present.".
nesetkal jste se s tim nekdo, resp nezna nekdo reseni, jak donutit PK v DataTable, aby se choval case-sensitive?
tj. nemuzu mit v takove tabulce najednou zaznamy s ID napr. "A" a "a" zaroven... pokud to tak v databazi mam, tak pri zavolani DataAdapterXY.Fill(DataTableXY) dojde k vyjimce "ConstraintException:Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.".
Pokud se pokusim o neco ve stylu:
[CODE]
//ITEMTYPES(ID String, Descr String)
myDS.ITEMTYPES.AddITEMTYPESRow("A", "AAA");
myDS.ITEMTYPES.AddITEMTYPESRow("a", "aaa");
[/CODE]
tak dostanu pro zmenu pri vlozeni druheho radku: "ConstraintException:Column 'ID' is constrained to be unique. Value 'a' is already present.".
nesetkal jste se s tim nekdo, resp nezna nekdo reseni, jak donutit PK v DataTable, aby se choval case-sensitive?
ze ja skoro vzdycky najdu odpoved, kdyz se zeptam :D
takze je to tim, ze defaultne je DataTable.CaseSensitive = false a xsdcf bohuzel negeneruje kod s implicitnim nastavenim CaseSensitive na true... kdyby nekdo nahodou vedel, jak xsdcf k nastavovani CaseSensitive donutit, tak prosim napiste...
takze je to tim, ze defaultne je DataTable.CaseSensitive = false a xsdcf bohuzel negeneruje kod s implicitnim nastavenim CaseSensitive na true... kdyby nekdo nahodou vedel, jak xsdcf k nastavovani CaseSensitive donutit, tak prosim napiste...
nejde mi o strukturu (metadata rozhodne case-sensitive nemam), ale o string data v sloupci, ktery je unique/PK... viz muj prvni prispevek...
XSD k tomu asi nedonutite, ale postupoval bych tak, ze si vytvorite potomka vygenerovane tridy, kteremu nastavite treba v konstruktoru CaseSensitive na true. Pak muzete tridy pregenerovavat a nemusite nastavovat CaseSensitive v puvodni tride...