假设我有以下类:
struct Vector
{
public float X { get; set; }
public float Y { get; set; }
public float Z { get; set; }
}
class Player
{
public string Name { get; set; }
public Vector Position { get; set; }
}如何在实体框架(核心)中配置它,使其映射到Name、PositionX、PositionY、PositionZ?
这是为了代码生成的目的,所以我不希望用户在创建他们的POCO时必须考虑EF (它也会向许多其他语言发出!)
发布于 2018-07-31 03:56:54
发布于 2020-08-06 00:26:43
目前(EF Core 3)不支持。然而,有一个关于它的GitHub问题,看起来结构即拥有类型在未来的版本中已经被接受:
发布于 2021-03-29 21:35:01
也在寻找同样的东西,并遇到了这个问题。我想发布我的发现: EF核心团队建议将其作为JSON存储在您的数据库中,并使用自定义值转换器:
modelBuilder.Entity<Order>()
.Property(e => e.Vector)
.HasConversion(
v => JsonSerializer.Serialize(v, null),
v => JsonSerializer.Deserialize<Vector>(v, null));不过,这并不理想。
https://stackoverflow.com/questions/51600685
复制相似问题