0
我在C#中做一個linq查詢,一切正常,但當我在MVC中調用此方法崩潰,它不接受空值我想空值是「」Defaultifempty給我空值,我想他們字符串「」
var referralDocs = (from d in _dc.ReferralDoctors
join mlog in _dc.LogPS.Where(x => x.id_action == 1)
on d.ReferralDoctorID equals mlog.id_PS into mlog
join _Category in _dc.ReferringDoctorCategories
on d.ReferringDoctorsCategory equals _Category.CategoryID into CatGroup
from _Category in CatGroup.DefaultIfEmpty()
where
d.DoctorID == doctorID && d.isDeleted == false && (d.NotificationEmail.Replace(" ", "").ToLower().Contains(search)
|| d.PracticePhone.Replace(" ", "").ToLower().Contains(search) || d.LastName.Replace(" ", "").ToLower().Contains(search) || d.FirstName.Replace(" ", "").ToLower().Contains(search))
select new ReferralDoctorInfo()
{
BirthDate = d.BirthDate,
DoctorID = d.DoctorID,
FirstName = d.FirstName != null ? d.FirstName.Trim().Replace("\r\n", "").Replace("\r", "").Replace("\n", "") : "",
HasOptOutNews = d.HasOptOutNews,
isDeleted = d.isDeleted,
LastName = d.LastName != null ? d.LastName.Trim().Replace("\r\n", "").Replace("\r", "").Replace("\n", "") : "",
NotificationEmail = d.NotificationEmail != null ? d.NotificationEmail.Trim().Replace("\r\n", "").Replace("\r", "").Replace("\n", "") : "",
PracticePhone = d.PracticePhone,
PracticeName = d.PracticeName != null ? d.PracticeName.Trim().Replace("\r\n", "").Replace("\r", "").Replace("\n", "") : "",
ReferralDoctorID = d.ReferralDoctorID,
lastOptOutDatetime = mlog.Where(x => x.client_id == doctorID && x.id_PS == d.ReferralDoctorID).Max(y => y.date),
DoctorCategory = _Category
});
好,我有這樣的選擇:DoctorCategory = _Category
,當我得到這個對象在MVC這個對象的第一行的對象應具備的所有值和工作正常,但第二行沒有值,所以它給了我空值,這是好的,因爲我想要那些沒有類別的人,但是在那一點上崩潰了,並且t herefore我想他們是「」
我想在DefaultifEmpty或_Category的東西,讓我改變空值
像這樣
ReferingDoctorCategory = _Category.Name != null ? _Category.Name : "",
這個問題是不爲對象的工作,所以如果有人想同樣的事情,我不能用它
您可以發佈整個語句嗎? –
不是'DefaultIfEmpty()'接受單個參數嗎?你已經嘗試過'.DefaultIfEmpty(String.Empty)'? – Eris
@Eris我試過,但沒有工作我已經找到了答案,謝謝! – FFHanzel