在 EF Core 中分解结构?

Geo*_*e R 7 c# entity-framework

假设我有以下课程:

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; }
}
Run Code Online (Sandbox Code Playgroud)

我如何在实体框架(核心)中配置它,使其映射到 Name、PositionX、PositionY、PositionZ?

这是用于代码生成目的,所以我不希望用户必须在考虑 EF 的情况下创建他们的 POCO(它也可以发送到很多其他语言!)

Pop*_*lin -4

对于 Entity Framework Core,您所描述的称为拥有实体

配置是这样的:

modelBuilder.Entity<Player>()
    .OwnsOne(p => p.Position);
Run Code Online (Sandbox Code Playgroud)

  • `错误CS0452:类型'Vector'必须是引用类型才能将其用作通用类型或方法'EntityTypeBuilder&lt;Player&gt;.OwnsOne&lt;TRelatedEntity&gt;(Expression&lt;Func&lt;Player, TRelatedEntity&gt;&gt;中的参数'TRelatedEntity' )'` (5认同)