私は単純な3つのテーブル参照を持っています。それは十分に平野に見えます。そこでの関連付けはDBMLで作成されます。実際にはテーブル定義の外部キーではありません。どうして?それは長い話です。私のことを信じて、私はその戦いと戦ってしまった。C#値がnullでない場合、なぜLinqがNullについてクラッシュするのですか?
私はLINQを使用して新しいファイルタイプレコードを追加しようとすると、それはエラーでクラッシュ:は、列ID、テーブルのFileTypeにNULL値を挿入することはできません。
_fileType = new FileType()
{
Id = def.ID, // This is the integer "1"
Name = def.Name,
FileCategoryId = def.Category.ID,
DateLabel = def.DateLabel,
FileNamePrefix = def.Prefix,
FolderName = def.Folder,
CreateInspection = 0
};
try
{
dc.FileTypes.InsertOnSubmit(_fileType);
dc.SubmitChanges();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
しかし、あなたはコードを気づく場合、Idが設定されています。私は値をチェックして、それはnullではありません。これは整数です。私は何が欠けているか間違っているのですか?
正しいIDのFileCategoryレコードが存在することを確認しました。私は行方不明のものが他にありますか?
おそらく自動インクリメントフィールドですか?その場合、レコードを挿入するIDを設定する必要はありません。 –
いいえ、私はそれが単なるフィールドであることを確認しました。それに対して定義されたアイデンティティ仕様はありません。私はキーのように使用しますが、実際には整数です。管理スタジオでは、私はフィールドを自由に設定し変更することができます。 – Jerry
このコードから生成されているT-SQLを表示できますか? – slypete