我有一个更新记录的查询; 看起来有点像这样:
public void SaveRecord(int TheUserID, Nullable<DateTime> TheDate,
Nullable<int> TheAction)
{
using DC...
{
var TheRecordToUpdate = (from....where ....
select l).Single();
TheRecordToUpdate.TheDate = TheDate;
TheRecordToUpdate.TheAction = TheAction;
TheDC.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
问题是有时我提供空参数,在这种情况下,我不想更改数据库中的字段.我该如何使用?参数为null时linq-to-sql中的运算符?
谢谢.
你可以使用??运营商
TheRecordToUpdate.TheDate = TheDate ?? TheRecordToUpdate.TheDate ;
Run Code Online (Sandbox Code Playgroud)
或者如果你想更明确地写它
if (TheDate.HasValue){
TheRecordToUpdate.TheDate = TheDate;
}
Run Code Online (Sandbox Code Playgroud)
如果TheRecordToUpdate.TheDate不是可以为空的属性,你必须写
if (TheDate.HasValue){
TheRecordToUpdate.TheDate = TheDate.Value;
}
Run Code Online (Sandbox Code Playgroud)