0

さて、これが私の問題を説明する最善の方法です。

エンティティ フレームワークを使用して、データ コンテキストのインスタンスを介して、LINQ を使用して、モデル内の "Marketing" というエンティティのインスタンスを取得します。下の画像が示すように、このエンティティには他のエンティティとの関係があります。「HospitalistSurvey」への展開された関係にエラーがあることに注意してください。後で、プロパティの値 (つまり、marketing.HospitalistSurvey.[HospitalistSurveyProperty]) を設定しようとすると、「null 非許容の System.Int32 型のメンバーに null 値を割り当てることはできません」というエラーが表示されます。値型。」

デバッガー コード

この問題の調査を開始するには、どうすればよいですか?

4

1 に答える 1

1

ここにあるのは次の状況だと思います。

エンティティ モデル

public class MyEntity
{
    [Key]
    public int Id { get; set; }

    public int Value { get; set; } // note that this is non nullable
}

データベース モデル

CREATE TABLE [dbo].[MyEntities](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Value] [int] NULL,
)

EF は、null 非許容型に null 値を入れようとしているため、表示されている例外をスローするMyEntities行があるまで、このセットアップを処理します。Value IS NULL

1 つの解決策は、モデルを変更することです。

public class MyEntity
{
    [Key]
    public int Id { get; set; }

    public int? Value { get; set; } // this is now nullable
}

もう 1 つは、データベースを変更することです。

CREATE TABLE [dbo].[MyEntities](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Value] [int] NOT NULL,
)
于 2013-04-17T14:19:28.637 に答える