次は、Entity Frameworkコンテキストを使用してSQL Serverを照会する私の元のコードです。データベースに照会し、StartsWithメソッドを使用して、ユーザー・クライアント側が入力した文字列と照合します。これにより、ユーザーは3つのフィールド(FirstName、LastName、およびHOHUPI)の任意の組み合わせを入力できます。Linq-C#動的検索ページのクエリ
var results = db.APPLICANTs.Where(p => (p.RESP_FRST.StartsWith(model.FirstName) || model.FirstName == null)
&& (p.RESP_LST.StartsWith(model.LastName) || model.LastName == null) && (p.HOH_UPI.ToString().StartsWith(model.HOHUPI) || model.HOHUPI == null))
.OrderBy(p => p.RESP_FRST);
このクエリは、1つのテーブル(申請者)のみを検索します。しかし、結果に含める必要がある別のテーブル(Contact_Info)があります。私はEFモデルにナビゲーションプロパティを持っていません。
私は次のことを試してみた:
var hID = from APPLICANT in context.APPLICANTs
join CONTACT_INFO in context.CONTACT_INFO on APPLICANT.HOH_UPI equals CONTACT_INFO.HOH_UPI
where (APPLICANT.HOH_UPI.ToString().StartsWith(model.HOHUPI)) && (APPLICANT.RESP_FRST.StartsWith(model.FirstName))
&& (APPLICANT.RESP_LST.StartsWith(model.LastName)) && (CONTACT_INFO.HM_PHN_NMB.ToString().StartsWith(model.HM_PHN_NMB))
orderby APPLICANT.RESP_FRST
select APPLICANT;
model.SearchResults = hID.ToPagedList(pageIndex, RecordsPerPage);
これにより、ユーザは、すべての4つのテキストボックスに値(姓、名、hohupi、および電話番号を入力するだけであれば動作します、私は処方するのに助けを必要としています。ユーザーは1つだけまたはテキストボックスの任意の組み合わせで検索できるようにクエリ。
申請テーブルの主キーがHOH_UPIあるとContact_Info表の外部キーがHOH_UPIある。
はそんなにありがとうあなたの助けに!