2011-12-06 8 views
0

これらの2つがコンボで動作しない理由を示す手がかりは誰ですか?msdata:PrimaryKey = "true"とAllowDBNull = "True"

私はxsdをいくつかのフィールドにまたがって主キーを扱うDBから生成しました。これらのフィールドの1つがnullを許可するので、残りのフィールドがキーを保持している限り、フィールドにはnullを含めることができます。

この制約をXSDで記述すると、primarykey = trueがallowdbnullより優先され、2が共存できないという問題があります。

他の手段を使用して挿入されたデータテーブルがあり、2つのテーブルのうちの1つにこのxsd制約があります。

手がかりはありますか?

+1

どのDBソフトウェアを使用していますか? SQLServerでは、プライマリキーに関与する列はすべてnullにできません。 – user957902

+0

宣言を掲示できますか? –

+0

あなたは絶対に正しいです。私は自宅に座っていた、これは私の頭の中でやっていた。あなたのコメントの後、私は(申し訳ありません)チェックし、PKエレメントはそれがまだ一意であってもヌルフィールドを持つことはできません。私はDBをチェックし、それはPKではありませんでしたが、何らかの理由でVSがmsdata:primarykey = trueをXSDのユニーク制約に置きました。 –

答えて

0

MSDNに関する情報があります。あなたのシナリオを考慮して、XMLスキーマの観点からは、null値のシナリオが可能なので、代わりにxs:uniqueを使用します。また、xsd:unique constraintsは、xsd:keysのように、xsd:keyrefで参照することもできます。