2017-03-23 1 views
0

私はOracle 12cでコードファーストを使用しています。 「'Table1'の 'Id'プロパティを 'System.Byte []'値に設定できませんでした。このプロパティを 'System.Guid'タイプのnull以外の値に設定する必要があります

var list = db.Table1.SqlQuery("select * from Table1")).ToList(); 

私はエラーに

を得る:私はクラスを持っている

public class Table1 
{ 
    public Guid Id { get; set; } 
    public string SomeOtherStuff { get; set; } 
} 

Entity Frameworkのは、私がこれを行うのであれば、今RAW

CREATE TABLE "FB"."Media" 
    ( "Id" RAW(16) NOT NULL ENABLE, ... 

にIDを変換し、 'Table1'のIdプロパティは設定できませんでしたo a 'System.Byte []'値。あなたはタイプのnull以外の値にこのプロパティを設定する必要があります「可能System.Guid」} `

編集:を私は問題があなたのことですOracle.ManagedDataAccess.EntityFramework 6.121.2.0

+0

ヒント:SO我々は4つのスペースのインデントを使用する(あるいはコードとCtrlキーを押しながらKを選択)、マークダウンのトリプルバッククォートの風味を使用していない:) – DavidG

答えて

0

を使用していますOracle EFプロバイダはGuidRawタイプにマップしますが、Rawはバイト配列にマップされます。

プロバイダがサポートしている場合は、プロバイダによってはサポートされていない場合もあります。

+0

あなたは、このメソッドを自分でしようとしたのですか? – Toolkit

+0

いいえ、私はしていません。このソリューションが有効かどうかは、実際のEFプロバイダに依存しますが、これは元の投稿には記載されていません。 これは、EF内の特定のプロパティの列タイプを指定する方法の1つです。したがって、OPによって使用されるプロバイダがサポートしていれば、機能するはずです(オリジナル記事の括弧内の部分を参照してください)。 –

+0

Oracle.ManagedDataAccess.EntityFramework 6.121.2.0を使用しています。 – Toolkit

関連する問題