9

INTである主キーを持つテーブルがあります...その最初のテーブルに対して外部キー関係を持つ別のテーブルがありますが、それはNULL可能INTです。

これは完全に問題なく、SQLには100%受け入れられます...ただし、LINQ to SQLは、型の不一致( "int to Nullable [int]")について不平を言っています。

エラーメッセージ:関連付け「Store_People」を作成できません。プロパティに一致するタイプがありません: "PersonID"、"ID"。

設計者がSQLの100%正しい使用法で怒鳴るのをやめるように、これをどのように解決しますか?

4

3 に答える 3

8

問題が見つかりました。親クラスにキーとして Nullable フィールドがない場合にのみ、関連付けを作成できます。

したがって、この:

代替テキスト http://www.singingeels.com/Articles/UserImage.aspx?ImageID=43d83ac4-707d-47fc-832c-588261e6a5d7

このエラーが発生します:

代替テキスト http://www.singingeels.com/Articles/UserImage.aspx?ImageID=19ed54aa-9f4f-4d5c-ba18-4996509d2da7

...でもこれは:

代替テキスト http://www.singingeels.com/Articles/UserImage.aspx?ImageID=0e09affd-2134-4712-999b-7e792f6e081b

完全に動作します。

それはバグのように見えます (または、少なくとも LINQ to SQL の愚かさ)... しかし、それ以外は気に入っています。

于 2008-11-21T18:55:52.883 に答える
3

私は現在、DBML でまさにそのような状況にあり、正常に動作しています。

主キー

  • Nullable - False
  • 主キー - True
  • サーバー データ型 - int NOT NULL IDENTITY
  • タイプ - int (System.Int32)

外部キー

  • Nullable - True
  • 主キー - False
  • サーバーのデータ型 - Int
  • 型 - int (System.Int32) (実際には、context.designer.cs ファイルで Nullable として定義されています)
于 2008-11-19T21:25:07.543 に答える
0

これが私が一緒に投げたものです。Table2 の Table1Id 列は、Table1 に対する null 許容の外部キーです。いくつかのデータ レコードを投入して、いくつかの Linq クエリをテストしました...

ここに画像の説明を入力

編集:この質問は6年前のもので、私が使用したホストは生き残っていないため、壊れたリンクに対して(明らかに)いくつかの反対票を投じているので...ここに更新されたバージョンがあります。

于 2008-11-19T21:38:22.680 に答える