在EF查询中使用字符串变量而不是文字的问题

时间:2018-11-06 17:22:00

标签: c# linq-to-sql linq-to-entities

我已经尝试了所有类似的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 ##。

谢谢 杰夫

0 个答案:

没有答案