У меня возникают проблемы при отображении результатов в CRM-запроса к моей пользовательской модели, если значение равно нулю, я пытаюсь использовать следующий код:Преобразовать в соответствующий тип, если переменная не является нулевым
foreach (account acc in accounts.BusinessEntities)
{
if ((acc.accountid != null))
{
try
{
Account newAccount = new Account();
newAccount.AccountID = acc.accountid.Value;
newAccount.MPRN = Convert.ToInt64(acc.new_mprnnumber);
newAccount.CustomerNumber = acc.new_customernumber;
newAccount.CurrentLiftDate = acc.new_preferredliftday.Value.Equals(DBNull.Value) ? 0 : Convert.ToInt32(acc.new_preferredliftday.Value);
newAccount.MonthlyAmount = acc.new_regularliftamount.Value.Equals(DBNull.Value) ? 0 : Convert.ToDecimal(acc.new_regularliftamount.Value);
newAccount.DepositDate = acc.new_depositdate.Equals(DBNull.Value) ? (DateTime?)null : Convert.ToDateTime(acc.new_depositdate.ToString());
newAccount.DepositAmount = acc.new_depositamount.Value.Equals(DBNull.Value) ? 0 : Convert.ToDecimal(acc.new_depositamount.Value);
db.Accounts.Add(newAccount);
db.SaveChanges();
}
catch(Exception ex)
{
System.Diagnostics.EventLog.WriteEntry("Application", "ERROR CREATING ACCOUNT IN BILLING ENGINE : " + ex.Message, System.Diagnostics.EventLogEntryType.Error);
}
}
}
Когда acc.new_depositdate имеет значение null, это не позволит мне установить значение даты в дату с нулевым значением и, похоже, продолжает пытаться преобразовать нулевое значение, поскольку я получаю ошибку ссылки объекта
Вы имеете в виду 'null' или' DBNull'? Если это действительно «нуль», то, очевидно, вызов «.Equals» будет генерировать исключение с нулевой ссылкой. Пожалуйста, разместите свое точное сообщение об ошибке + трассировку стека? – sstan