问题描述
在 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 (将#修改为@)