2009-10-23 2 views
2

Я пытаюсь сохранить URI в виде строки в базе данных с помощью LINQ.Отображение URI в String-поле в LINQ-to-SQL

[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)? Это кажется простым, но я не могу понять, где я делаю это неправильно.

ответ

5

Как всегда, запись вопроса помогла мне понять проблему. Следующий код исправил мою проблему:

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

[Column(Name = "Url", DbType = "nvarchar(255)")] 
private string _url; 
Смежные вопросы