2016-03-28 8 views
0

Visual Studioを使用するエンティティにMySql LinQを使用しています。コードは、コメントアウトされている部分を除いて機能します。これはSQLでは動作しますが、MySQLでは動作しません。コメントアウトされているコードと同等のMySqlを知っている人はいますか?それは働いていないとどのような例外の種類/エラーが投げている理由、それはある場合Visual Studio 2015 EntityへのMySQL LinQ生成クエリの取得

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

使用しているEFのバージョンは? EF6では、プロバイダに関係なく 'var query = countries.ToString();'を使うことができます。 –

答えて

0

あなたは、より詳細に説明する必要があります。

最初にunboxの文字列を別のType(ObjectQueryなど)に直接割り当てることはできません。

unboxをベースクラスから継承したクラスに継承することができます。逆も同様です。

次はあなたが行うことができるものです。

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 

そして、あなたが行うことができない何か、次のとおりです。

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 

私はそれがあなたの役に立てば幸いです。

+0

[ボクシングとアンボックス(C#プログラミングガイド)](https://msdn.microsoft.com/en-us/library/yz2be5wk.aspx) –

関連する問題