我的項目使用MVC 4 C#LINQ to SQL。方法沒有支持轉換到SQL
由於某些原因,用於爲我的某個屬性獲取數據的方法提供了「沒有支持的SQL轉換」錯誤。獲取此數據的方法與同一查詢中另一個屬性的方法幾乎完全相同,只是可以在未獲取小數的字符串中使用該字符串。
精確的錯誤代碼:
Method 'System.Decimal GetModelDifficulty(System.String)' has no supported translation to SQL.
我試着在下面的代碼許多變化,但我總是得到同樣的錯誤如上:
public List<ProductionSchedule> GetBaseProductionSchedule(DateTime selectedDate)
{
var spaList = (from x in db.WO010032s
join y in db.MOP1042s on x.MANUFACTUREORDER_I equals y.MANUFACTUREORDER_I into x_y
where x.STRTDATE == selectedDate && (x.MANUFACTUREORDERST_I == 2 || x.MANUFACTUREORDERST_I == 3)
from y in x_y.DefaultIfEmpty()
select new ProductionSchedule()
{
MO = x.MANUFACTUREORDER_I,
BOMNAME = x.BOMNAME_I,
SpaModel = x.ITEMNMBR,
MoldType = GetMoldType(x.ITEMNMBR.Trim()),
SerialNumber = y.SERLNMBR,
Difficulty = GetModelDifficulty(x.ITEMNMBR.Trim())
}).OrderByDescending(x => x.Difficulty).ToList();
return spaList;
}
public string GetMoldType(string model)
{
return db.SkuModelDatas.Where(x => x.Value == model).Select(x => x.MoldType).FirstOrDefault();
}
public decimal GetModelDifficulty(string model)
{
return (decimal)db.SkuModelDatas.Where(x => x.Value == model).Select(x => x.Difficulty).FirstOrDefault();
}
奇怪 - 我相信這兩個('GetModelDifficulty'和'GetMoldType')應該給你同樣的錯誤,因爲方法調用不能被轉換爲SQL ... –
嗯奇怪我已經用了很多次之前我相信。此外,我測試了GetModelDifficulty方法的註釋,並將其設置爲0,即使GetMoldType方法保持不變,查詢也可以毫無問題地執行。 –
「SkuMOdelData.Difficulty」的類型是什麼?你爲什麼要把它轉換成十進制? – Moho