3

最初にエンティティフレームワークコードのCTP5をテストしていて、この問題が発生しました。タイプUri(System.Uri)のプロパティを持つクラスがありますが、その方法を自動的に識別できないようです。それを保存すると、次のようなエラーが発生します

Problem in mapping fragments starting at line 23:No mapping specified for properties WebPage.Uri in Set WebPage

たとえば、URIのURLを使用してUriをvarcharにマップするようにモデルに指示するにはどうすればよいですか?

4

1 に答える 1

1

実際の POCO モデルは、プリミティブ型にバインドする必要があります。次のような複合型バインディングを使用できます。

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

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

于 2011-02-09T23:08:30.570 に答える