将 URI 映射到 LINQ-to-SQL 中的字符串字段

2024-04-20

我正在尝试使用 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) 到我的数据库中?看起来很简单,但我不知道我哪里做错了。


一如既往,写下问题帮助我认识到了问题。以下代码解决了我的问题:

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

[Column(Name = "Url", DbType = "nvarchar(255)")]
private string _url;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 URI 映射到 LINQ-to-SQL 中的字符串字段 的相关文章

随机推荐