2009-10-23 2 views
2

LINQ를 사용하여 URI를 데이터베이스에 문자열로 저장하려고합니다. 이 코드를 사용하여 데이터를 가져 오기 위해 시도 할 때LINQ-to-SQL의 문자열 필드에 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)를 저장해야합니까? 그것은 단순 해 보이지만, 내가 잘못하고있는 곳을 알아낼 수는 없습니다.

답변

5

언제나 그렇듯이 질문을 적어 내게 도움이되었습니다. 다음 코드는 내 문제를 해결했습니다 :

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

[Column(Name = "Url", DbType = "nvarchar(255)")] 
private string _url; 
관련 문제