gpt4 book ai didi

c# - 在 Entity Framework Core 中表示复杂对象

转载 作者:太空宇宙 更新时间:2023-11-03 21:03:52 24 4
gpt4 key购买 nike

例如,假设我有这个对象,我想使用 EntityFramework 将其放入 SQL 数据库中:

public class Shift
{
public Guid Id { get; set; }

public Attendance Attendance { get; set; }
public Managers Managers { get; set; }

// other properties
}

public class Attendance
{
public int AM { get; set; }
public int MidDay { get; set; }
public int PM { get; set; }
}

public class Managers
{
public string AM { get; set; }
public string MidDay { get; set; }
public string PM { get; set; }
}

通常,我会认为这是不可能的,我会把所有东西都压平成一个简单的属性集合:

public class Shift
{
public Guid Id { get; set; }

public int Attendance_AM { get; set; }
public int Attendance_MidDay { get; set; }
public int Attendance_PM { get; set; }

public string Managers_AM { get; set; }
public string Managers_MidDay { get; set; }
public string Managers_PM { get; set; }
}

但有没有办法让 EF 将复杂对象存储为单个表?

编辑

这可能有助于说明我的问题。

目标是让上面的两个代码块在 SQL 中使用同一个表: The goal table

最佳答案

在上下文类的 OnModelCreating() 中添加以下内容。它仅适用于 .NET Core 2.0:

 modelBuilder.Entity<Shift>().OwnsOne(s => 
{ cb.OwnsOne(c => c.Attendance);
cb.OwnsOne(c => c.Managers);
});

关于c# - 在 Entity Framework Core 中表示复杂对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42587811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com