1
我有WCF服務方法,它接受一個int參數並返回基於該參數的結果集。我正在使用linq和實體框架來檢索記錄。有一個新的要求,用另一個字段查詢同一個表。這個字段是一個varchar字段,它將字符串參數作爲輸入。那麼實現這個最好的方法是什麼?擴展相同的服務方法以合併新參數還是我製作單獨的服務方法會更好嗎?另一點需要注意的是,我不知道客戶在任何時間點會傳遞哪個參數。以下是現有的服務方法邏輯WCF - 傳遞參數
public IEnumerable<TBI.JV.Business.Objects.Asset> GetAssetsBasicBySedols(int[] sedols)
{
var priceDate = DateTime.UtcNow.Date.AddMonths(-8);
var typeList = new string[]
{
"UNIT TRUST",
"OEIC",
"INVESTMENT TRUST",
"INVESTMENT COMPANY",
"PENSION FUND",
"INSURANCE BOND",
"LISTED EQUITY",
"PREFERENCE SHARE",
"ZERO DIVIDEND PREF",
"GILT (CONVENTIONAL)",
"GILT (INDEX LINKED)",
"AIM",
"VCT",
"OFFSHORE FUND",
"ETP"
};
using (var dealingContext = new dbDealingContainer())
{
return (from fundprice in dealingContext.FundPrices
where (fundprice.FUND_STATUS == "ACTIVE" || fundprice.FUND_STATUS == "SUSPENDED") &&
(fundprice.INVNAME != null || fundprice.INVNAME != "") &&
!fundprice.INVNAME.StartsWith("IFSL Bestinvest") &&
fundprice.WaterlooTradable == true &&
//fundprice.PRICE_DATE > priceDate &&
fundprice.BID_MID_PRICE > 0 && typeList.Contains(fundprice.FUND_TYPE)
&& ((sedols.Count() > 0 && sedols.Contains(fundprice.Id)) || sedols.Count() == 0)
select new TBI.JV.Business.Objects.Asset
{
AssetName = fundprice.INVNAME,
AssetId = fundprice.Id,
AssetType = fundprice.FUND_TYPE,
Epic = fundprice.INVESTMENT_CODENAME,
StarRating = fundprice.STARLEN,
Sedol = fundprice.SEDOL_NUMBER
}).ToList();
}
}
是否需要查詢與另一個字段** _(通過整數和字符串查詢)相同的表,或只是字符串參數? – Herdo