Ich fragte eine MS SQL-Frage, die beantwortet wurde>here <. Dies ist eine Folgefrage. Im Wesentlichen ist es dasselbe, außer dass die Datenbank MySQL und nicht MS SQL ist und das Objekt der LINQ-Abfrage ein view
und keine Tabelle ist.Follow-on zu: C# Linq Zeichenfolge vergleichen mit indexOf
Meine Frage ist jetzt über EF-Abfragen an MySQL-Datenbanken. Ich mache eine sehr ähnliche Abfrage, aber das Backend ist eine MySQL-Datenbank view
anstelle einer Tabelle. Ich versuche, die genau die gleiche Konstrukt für die MS SQL-Tabelle und habe verwendet zu verwenden:
from myView in db.companySessions
where myView.machine.ToUpper().Substring(0,
(int) SqlFunctions.CharIndex(myView.machine, "."))
.Equals(machine.ToUpper().Substring(0,
(int) SqlFunctions.CharIndex(machine.ToUpper(), ".")))
db.companySessions
Punkte. machine
ist eine Zeichenfolge, die von der Methode übergeben und validiert wird. Ich bekomme die Ausnahme:
LINQ to Entities does not recognize the method 'Int32 IndexOf(System.String,
System.StringComparison)' method, and this method cannot be translated into
a store expression.
Ist das, weil ich in eine view
bin erreicht oder erreichen zu MySQL?
Wenn Sie .net-Core verwenden Ich wette, es liegt an MySQL. – Nikolaus