LinqToSql Nullable Column

时间:2014-07-03 12:18:51

标签: c# sql sql-server linq-to-sql

我的数据库中有一个名为Patients的表。该表有一个名为 DOB 的列,其Allow Null值为true。这是表结构:

  • Id int IDENTITY(1,1)NOT NULL,
  • FirstName nvarchar(50)NULL,
  • LastName nvarchar(50)NULL,
  • 性别位为NULL,
  • 重量小数(18,0)NULL,
  • 高度小数(18,0)NULL,
  • DOB日期为空
  • PatientId nvarchar(50)NOT NULL

我正在使用LinqToSql。问题是,当我想为DOB列设置null时,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

1 个答案:

答案 0 :(得分:3)

DOBPatient媒体资源的类型是什么?根据描述,大概是这样的(为简洁起见缩短):

public DateTime DOB { get; set; }

为了设置null值,它必须是可以为空的类型,例如:

public DateTime? DOB { get; set; }

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