2011-02-09 12 views
3

まず、エンティティフレームワークコードのCTP5をテストしていますが、この問題が発生しました。 Uri型のプロパティを持つクラスがあります可能System.Uri)が、それは自動的にそれを格納する方法を特定することができませんでしだように見えたので、私はEntity Frameworkコード先頭CTP5:非プリミティブ型を定義する方法

Problem in mapping fragments starting at line 23:No mapping specified for properties WebPage.Uri in Set WebPage 
で私は、例えば、varchar型にURIをマップするためにモデルを伝えることができますどのように

のようなエラーが出ますuriのurl?

答えて

1

実際のPOCOモデルはプリミティブ型にバインドする必要があります。どうしても必要な場合は、URI参照として、この複合型

[ComplexType()] 
public class UriHelper 
{ 
    public string StringRepresentation {get;set;} 
    public Uri ActualUri() 
    { 
     return new Uri(StringRepresentation); 
    } 
} 

そして、あなたの実際のオブジェクト参照で:あなたのような結合複合型を使用することができます。マッピングによって、実際の値のプロパティがStringとして参照されます。最後のオプションは、EFエンジンが使用するためにURIから文字列へのカスタムマッピングを作成することです。しかし、私はこれをお勧めしません。実際のデータベースプロパティは、URIではなく、varcharまたはnvarchar型です。したがって、EFはURIが何であるかを知らない。

関連する問題