我刚刚将我的 MVC3 项目(使用 C#)从 更新ObjectContext
为DbContext
,但我遇到了一些奇怪的错误......
我正在使用数据库优先的方法,并且我有一个表,其中有一Name
列 type nvarchar
,它不为空。我将它更改为null
在 SQL Server 中接受,然后我更新了我的edmx
模型,删除了.tt
文件并再次生成它(使用 ADO.NET DbContext
)。
当我从该表创建一个新对象时,将属性的值设置为Name
null 我在.DbEntityValidationException
The Name field is required
db.SaveChanges()
但是该表在 Name 列上接受 NULL!我已经在 SQL Server 中用 SQL 插入了很多行,Name
列中有 NULL!
任何人都知道我该如何解决?
一些信息
这是我的表 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();