2

LINQを使用して、URIを文字列としてデータベースに格納しようとしています。

[Column(Name = "Url", DbType = "nvarchar(255)")]
public Uri Url
{
    get
    {
        return new Uri(_url);
    }
    set
    {
        _url = value.AbsoluteUri;
    }
}

private string _url;

ただし、このコードを使用してデータをフェッチしようとすると、これは私のデータベース設計にうまく対応します。

int id = 3;
_serie = new DataContext(connString).GetTable<Serie>();
var serie = _serie.FirstOrDefault(s => s.Id == id);

最後の行で、例外が発生します

System.InvalidCastException: Invalid cast from System.String to System.Uri etc

コード内のURIを正しく処理するために何をする必要がありますが、それをデータベースにnvarchar(255)として保存しますか?簡単そうに見えますが、どこが間違っているのかわかりません。

4

1 に答える 1

5

いつものように、質問を書き留めることは私が問題を理解するのを助けました。次のコードは私の問題を修正しました:

public Uri Url
{
    get
    {
        return new Uri(_url);
    }
    set
    {
        _url = value.AbsoluteUri;
    }
}

[Column(Name = "Url", DbType = "nvarchar(255)")]
private string _url;
于 2009-10-23T08:23:08.367 に答える