2016-03-28 12 views
0

Ich verwende MySql LinQ zu Entitäten mit Visual Studio. Der Code funktioniert bis auf den auskommentierten Teil. Das funktioniert mit SQL, aber nicht mit MySQL. Kennt jemand das MySql-Äquivalent des Codes, der auskommentiert ist?Visual Studio 2015 MySql LinQ zu Entities Get generierte Abfrage

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.ComponentModel; 
using System.Text; 
using System.Threading.Tasks; 
using System.Data; 
using MySql.Data; 
using MySql.Data.MySqlClient; 
namespace TestMySql_Nuget_etc 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      worldEntities db = new worldEntities(); 
      var countries = from c in db.countries 
          where c.Name.StartsWith("A") 
          select c; 
      //string query = ((ObjectQuery)countries.ToTraceString()); 
      foreach(var c in countries) 
      { 
       Console.WriteLine(c.Name); 
      } 
      Console.ReadLine(); 
     } 
    } 
} 
+0

Welche Version von EF verwenden Sie? Mit EF6 können Sie 'var query = countries.ToString();' unabhängig vom Provider verwenden. –

Antwort

0

Sie müssen in mehr Details erklären, warum es nicht funktioniert und welche Art von Ausnahmen/Fehler werfen, wenn es ist.

Zuerst können Sie nicht unbox eine Zeichenfolge direkt an eine andere Type (wie ObjectQuery).

Sie können einfach unbox von einer Basisklasse zu einer geerbten, umgekehrt.

Das folgende ist etwas, was Sie tun können:

int number = 30; 
object obj = number; 
number = (int) obj;// if it fails, will throw a cast exception 

... 

class A 
{ 
    public string Name {get;set;} 
} 

class B : A 
{ 
    public int Age {get;set;} 
} 

class C 
{ 
    public int Age {get;set;} 
} 

... 

A objectA = new A(); 
A objectAAndB = new B(); 
B objectJustB = (B) objectAAndB; 
B objectB = (B) A; // It'll throw a cast exception 

Und folgt etwas, was Sie nicht tun können:

A objectA = new A(); 
B objectB = new B(); 
C objectC = new C(); 
A objectC1 = new C(); // It won't compile 
C objectC2 = (C) objectA; // It won't compile 
C objectC3 = (C) objectB; // It won't compile 
A objectA1 = (A) objectC; // It won't compile 
B objectB1 = (B) objectC; // It won't compile 

Ich hoffe, dass es Ihnen hilft.

+0

können Sie mehr auf [Boxen und Unboxing (C# -Programmierhandbuch)] (https://msdn.microsoft.com/en-us/library/yz2be5wk.aspx) –