标签: columnattribute

在LINQ-to-SQL中将URI映射到String-field

我正在尝试使用LINQ将URI作为字符串存储在数据库中.

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

private string _url;
Run Code Online (Sandbox Code Playgroud)

但是,当尝试使用以下代码获取数据时,这很好地映射到我的数据库设计:

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

在最后一行,我得到一个例外

System.InvalidCastException: Invalid cast from System.String to System.Uri etc
Run Code Online (Sandbox Code Playgroud)

我需要做什么来正确处理我的代码中的URI,但在我的数据库中存储它是一个nvarchar(255)?这似乎很简单,但我无法弄清楚我做错了什么.

c# uri linq-to-sql columnattribute

2
推荐指数
1
解决办法
1245
查看次数

获取实体的列名

我正在使用Entity Framework,这是其中一张表的元数据的样子。

    [Column("pp_account")]
    public string Account { get; set; }
    [Column("pp_added")]
    public DateTime? AddDate { get; set; }
    [Column("pp_auser")]
    public string AddUpdateUserName { get; set; }
    [Column("pp_cfalt")]
    public string AlternateForwardingNumber { get; set; }
Run Code Online (Sandbox Code Playgroud)

我对获取Column属性名称而不是公共名称感兴趣,即显示pp_added而不是“ AddDate”。到目前为止,这是我编写的一个foreach循环,几乎可以将我带到那里

foreach(var field in _personal.GetType().GetProperties())
{
            sb.Append("\nName            : " +  field.Name + "\n");
            sb.Append("Type        : " + field.PropertyType.Name + "\n");
            sb.Append("Attributes:  " + field.Attributes + "\n");
            sb.Append("Value       : " + field.GetValue(_personal, null) + "\n");
}
Run Code Online (Sandbox Code Playgroud)

这是返回的内容:

Name:  AddDate
Type:  Nullable'1
Attributes:  None
Value:  5/2/2014 12:00:00 …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework columnattribute

2
推荐指数
1
解决办法
1872
查看次数

标签 统计

c# ×2

columnattribute ×2

entity-framework ×1

linq-to-sql ×1

uri ×1