我已经尝试了所有类似的SO发布问题的所有答案,但在使用Oracle EF6的查询字符串中尝试使用变量时,仍然没有弄清楚我在做什么错。当我使用字符串文字并返回1条记录时,它将起作用。
当我将查询更改为使用可变字符串时,查询每次都会返回0。
public PVI()
{
string MachineId = "M123";
ASCIIEncoding ascii = new ASCIIEncoding();
Encoder encoder = ascii.GetEncoder();
encoder.Fallback = new EncoderReplacementFallback(string.Empty);
//byte[] bAsciiString = ascii.GetBytes(MachineId);
//string cleanString = ascii.GetString(bAsciiString);
var utf8bytes = Encoding.Unicode.GetBytes(MachineId);
string cleanString = ascii.GetString(utf8bytes);
PriorityNoteModel1 dbPriorityNote = new PriorityNoteModel1();
var pnQuery = (from pn in dbPriorityNote.CNTR_SCHED
// /*1. This works*/ where pn.WORK_CENTER.EQNO == "M123" & pn.CNTR_SEQ == 1
// /*2. This does not work*/ where pn.WORK_CENTER.EQNO == cleanString & pn.CNTR_SEQ == 1
/*3. This does not work*/ where pn.WORK_CENTER.EQNO == MachineId & pn.CNTR_SEQ == 1
// /*4. This does not work*/ where pn.WORK_CENTER.EQNO == Properties.Settings.Default.MachineId & pn.CNTR_SEQ == 1
select pn).ToList();
if (pnQuery.Count != 0) {
}
所有代码均返回0计数,但硬编码“ M123”时除外。我尝试过转换为ASCII以及所有各种UTF ##。
谢谢 杰夫