2

MVC3プロジェクト(C#を使用)をからに更新しましObjectContextDbContextが、奇妙なエラーが発生します...

私はデータベースファーストのアプローチを使用しており、nullではないNameタイプの列を持つテーブルがあります。SQL Serverでnvarchar受け入れるように変更してから、モデルを更新し、ファイルを削除して、(ADO.NETを使用して)再度生成しました。nulledmx.ttDbContext

そのテーブルから新しいオブジェクトを作成し、Nameプロパティの値をnullに設定すると、DbEntityValidationExceptionにwithThe Name field is requiredメッセージが表示されdb.SaveChanges()ます。

しかし、テーブルは名前列でNULLを受け入れています!SQL ServerにSQLを含む多くの行を挿入し、列にNULLを挿入しましたName

どうすればそれを解決できるか知っている人はいますか?

いくつかの情報

これが私のテーブルSQLです:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Pre_Register](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](64) NULL,
    [Email] [nvarchar](64) NOT NULL,
    [Permission] [tinyint] NOT NULL,
    [Password] [nvarchar](256) NOT NULL
PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

これは自動生成されたモデルクラスです。

public partial class Pre_Register
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public byte Permission { get; set; }
    public string Password { get; set; }
}

そして、これが私がエラーを得る方法です:

Pre_Register preReg = new Pre_Register();

db.Pre_Register.Add(preReg);

preReg.Email = "dudu@mail.com";
preReg.Permission = 1;
preReg.Password = "123456";
preReg.Name = null;

// here it comes
db.SaveChanges();
4

1 に答える 1

1

私が見る唯一のもの:

edmxを開きます。

Pre_Registerエンティティに移動し、Nameプロパティを選択し、プロパティを右クリックして、Nullableフィールドがtrueに設定されているかどうかを確認します。

そうでない場合は、trueに設定します。これは奇妙なことですが、私は別の理由を見つけることができません。

ここに画像の説明を入力してください

これは、データベースが最初に...完璧ではないこと、またはあなたの側で何かが起こったことを意味します...

于 2012-10-11T11:31:13.703 に答える