private void OnSearchExecute(IQueryable<SurveySearchCriteria> query)
{
SurveySearchCriteria ssc=query.Where(a => a.CriteriaString == "LastName").SingleOrDefault();
string format = ssc.WhereClause;
string args= string.Format(".{0}(\"{1}\")", SelectedSearchType, EnteredSearchCriteria);
string returnval = string.Format(format, args);
ReadmissionTrackingApplication.Server.Services.SurveysDomainContext _context =
new ReadmissionTrackingApplication.Server.Services.SurveysDomainContext();
EntityQuery<ReadmitPatientList> eq = _context.GetReadmitPatientListByCriteriaQuery(returnval);
var lo= _context.Load<ReadmitPatientList>(eq);
используя этот код, он не заполняет мои lo.entities.
У меня такое чувство, потому что я не использую обратный вызов, но запрос отлично работает в linqpad.
returnval = "PatientLastName.Contains (\" test \ ")", и когда я подключаю его к linqpad, он работает.
ReadmitPatientList.AsQueryable (). Где ( "PatientLastName.Contains (\" тест \ ")")
вот запрос службы домена ...
public IQueryable<Data.ReadmitPatientList> GetReadmitPatientListByCriteria(string formattedCriteriaString)
{
var query = this.ObjectContext.ReadmitPatientList.AsQueryable()
.Where(a => a.OriginalAdmitDate >= new DateTime(2010, 01, 01))
.Where(formattedCriteriaString);
return query;
}
Мой вопрос: почему это работает в linqpad, а не в моем коде? Я использую Silverlight, так что это может быть из-за отсутствия обратного вызова. Это мой первый крупный опыт в программировании веб-баз, поэтому я все еще привыкаю ко всем тонкостям ...