如何解决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 举报,一经查实,本站将立刻删除。