gpt4 book ai didi

c# - 如何强制 Entity Framework 映射 `internal` 导航属性?

转载 作者:行者123 更新时间:2023-11-30 22:17:46 25 4
gpt4 key购买 nike

使用 Code FirstEF 5.0 我有以下内容:

internal class Entities : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Project> Projects { get; set; }
}

// User class which holds a list of 'Project' class
public class User
{
private List<Project> _projects = new List<Project>();

public int Id { get; set; }
internal List<Project> Projects
{
get { return _projects; }
set { _projects = value; }
}
}

// Project class which holds a list of 'Milestone' class
public class Project
{
private List<Milestone> _milestones = new List<Milestone>();

public int Id { get; set; }
public string Title { get; set; }
internal List<Milestone> MileStones
{
get { return _milestones; }
set { _milestones = value; }
}
}

尽管 EF 已正确创建表和关系(一对多:User=>Project=>Milestone),但如果我创建一个具有某些项目的用户并将其添加到 DbContext,则只有用户将被添加到而他的项目不会。对于具有里程碑的项目的用户也是如此。我是这样做的:

public void AddUser(User user)
{
using (var repository = new Entities())
{
repository.Users.Add(user);
repository.SaveChanges();
}
}

我的问题是如何强制 EF 自动插入或更新复杂实体(级联),从而添加具有项目列表的用户,将用户插入 USERS 表中,并在 PROJECTS 表中插入他的项目自动(具有正确的关系)?

EF 的第 5 个版本是否如此智能,还是我应该手动完成?

最佳答案

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().HasMany(x => x.Projects);
}

关于c# - 如何强制 Entity Framework 映射 `internal` 导航属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16576288/

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