例如,假设我想将这个对象放入带有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将复杂对象存储为单个表?
修改
这可能有助于说明我的问题。
答案 0 :(得分:3)
在上下文类的OnModelCreating()
中添加以下内容。它仅适用于.NET Core 2.0:
modelBuilder.Entity<Shift>().OwnsOne(s =>
{ cb.OwnsOne(c => c.Attendance);
cb.OwnsOne(c => c.Managers);
});
答案 1 :(得分:1)
此功能将在Entity Framework Core 2中提供。 目前,实体框架核心2处于预览状态,但预览1中的功能尚未完成,但可以通过使用其每晚构建来使用。
您可以在此处阅读:https://blogs.msdn.microsoft.com/dotnet/2017/05/12/announcing-ef-core-2-0-preview-1/
(该功能已经可用于&#34;普通&#34;实体框架)