LinqToSql Nullable Column

本文关键字:Column Nullable LinqToSql | 更新日期: 2023-09-27 18:11:14

我的数据库中有一个名为Patients的表。表中有一个列,名为DOB,允许Null值为true。下面是表的结构:

    Id int IDENTITY(1,1) NOT NULL,
  • FirstName nvarchar(50) NULL,
  • LastName nvarchar(50) NULL,
  • 性别位NULL,
  • 权重十进制(18,0)NULL,
  • 高度十进制(18,0)NULL,
  • 截止日期NULL
  • PatientId nvarchar(50) NOT NULL

我正在使用LinqToSql。问题是,当我想设置一个空DOB列然后Visual Studio告诉DOB是不可空的。下面是我的代码:

Patient tblPatient = new Patient();
if (txtYear.Text != "" && txtMonth.Text != "" && txtDay.Text != "")
                    tblPatient.DOB = Utility.ConvertPersianDateToGregorianDate(txtYear.Text + "/" + txtMonth.Text + "/" + txtDay.Text);
                else
                    tblPatient.DOB = null;  // The error is in this line

LinqToSql Nullable Column

Patient上的DOB属性是什么类型?根据描述,大概是这样的(为了简洁而缩短):

public DateTime DOB { get; set; }

为了设置null值,它需要是一个可空的类型,例如:

public DateTime? DOB { get; set; }

当您从数据模型生成代码时,Linq to SQL应该已经为您完成了这项工作。如果代码是手动创建的,则需要相应地更新它。如果它是自动生成的,您可能需要重新生成它。(它似乎是针对列不可空的旧数据模型生成的。)