微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

EF6 和 ConvertValue

如何解决EF6 和 ConvertValue

在 EF Core 中,您可以通过以下方式将值从一种类型转换为另一种类型:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<MyClass>()
    .Property(x => x.MyProperty)
    .HasConversion(
        v => ...
        v => ...
    )
}

我知道 EF6 不支持功能,但是完成相同操作的解决方法是什么?在我的情况下,问题是我必须将 varchar 字段转换为 Guid,不幸的是,我无法将数据库中的类型直接更改为 uniqueidentifier。注意:这将与 odata 一起使用。

就这样做:

[EnableQuery]
public IHttpActionResult Get()
{
    return Ok(from p in db.Persons
        select new Person
        {
            Guid = Guid.Parse(p.GuidString),Name = p.Name
        });
}

会导致错误

LINQ to Entities 无法识别方法 'System.Guid Parse(System.String)' 方法,并且该方法无法转换为存储表达式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。