我的数据库中有一个名为Patients的表。该表有一个名为 DOB 的列,其Allow Null值为true。这是表结构:
我正在使用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
答案 0 :(得分:3)
DOB
上Patient
媒体资源的类型是什么?根据描述,大概是这样的(为简洁起见缩短):
public DateTime DOB { get; set; }
为了设置null
值,它必须是可以为空的类型,例如:
public DateTime? DOB { get; set; }
从数据模型生成代码时,Linq to SQL应该为您完成此操作。如果手动创建代码,则需要相应地更新代码。如果它是自动生成的,您可能需要重新生成它。 (似乎它是针对列不可为空的数据的旧模型生成的。)