首页 > 解决方案 > 是否可以在实体构造函数中创建和保存相关数据?

问题描述

本文描述了从 Asp.Net Core v2.1 开始在实体类型中使用构造函数的可能性。

我想,是否可以在创建实体时自动创建一些相关数据,而无需在控制器中为其编写任何代码?

像这样的东西:

public class ProjectTask
{
    public ProjectTask()
    {
        // Somehow check if we are creating a new ProjectTask.
        // if (create)
        // {
        Notifications.Add(new ProjectTaskNotification
        {
            IsSent = false,
            ProjectTaskId = Id,
            Task = this,
            TimeBefore = new TimeSpan(7, 0, 0, 0)
        });
        // }
    }

    public int Id { get; set; }

    // Some more properties...

    public Member TaskOwner { get; set; }
    public List<ProjectTaskNotification> Notifications { get; set; }
    public Project Project { get; set; }
}

然后我只需将ProjectTask-entity 保存在控制器中,而不必担心Notifications

db.Add(projectTask);
await db.SaveChangesAsync();

可以做到吗?我不太了解 C# 或 EF,所以也许我遗漏了一些明显基本的东西?

标签: c#ef-code-firstentity-framework-coreasp.net-core-mvc-2.1

解决方案


推荐阅读