将项目发布到数据库中而无需填写外键

发布于 2025-02-10 15:47:04 字数 1300 浏览 2 评论 0原文

我正在为银行系统创建Web API模型每个分支机构都有一个ManagerID,它是用户表的外键。

当我想发布一个新分支时,我必须填写分支机构和经理的所有列。我只能插入分支列?

分支实体:

public class Branch
{
    public int Id { get; set; }
    public string BranchName { get; set; }
    public string? PhoneNumber { get; set; }
    public User BranchManager { get; set; }
    public ICollection<Device> Devices { get; set; }
}

用户实体:

public class User
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string PhoneNumber { get; set; }
    public string Address { get; set; }
    public int ? SuperviseID { get; set; }
    public UserTypes UserType { get; set; }

    [ForeignKey("SuperviseID")]
    public User? Supervise { get; set; }
    public ICollection<Branch>? Branches { get; set; }
}

我的代码:

public void PostBranch(Branch branch)
{
   var db = new OrganizationDbContext();
   db.Add(branch);
   db.SaveChanges();
} 

发表请求正文:

{
  "id": 5,
  "branchName": "Bank",
  "phoneNumber": "9999999",
  "branchManagerId": 7
}

当我将其他列留为空时,我会发现一个错误:

sqlexception:无法将值插入列中

I am creating a Web API model for banking system each branch have a managerId which is a foreign key to the users table.

When I want to post a new branch, I have to fill all the columns for branch and the manager. How can I only insert branch columns?

Branches entity:

public class Branch
{
    public int Id { get; set; }
    public string BranchName { get; set; }
    public string? PhoneNumber { get; set; }
    public User BranchManager { get; set; }
    public ICollection<Device> Devices { get; set; }
}

Users entity:

public class User
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string PhoneNumber { get; set; }
    public string Address { get; set; }
    public int ? SuperviseID { get; set; }
    public UserTypes UserType { get; set; }

    [ForeignKey("SuperviseID")]
    public User? Supervise { get; set; }
    public ICollection<Branch>? Branches { get; set; }
}

My code:

public void PostBranch(Branch branch)
{
   var db = new OrganizationDbContext();
   db.Add(branch);
   db.SaveChanges();
} 

Post request body:

{
  "id": 5,
  "branchName": "Bank",
  "phoneNumber": "9999999",
  "branchManagerId": 7
}

When I left other columns empty, I get an error:

SqlException: Cannot insert the value NULL into column

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

披肩女神 2025-02-17 15:47:04

我发现问题所在:

public void PostBranch(Branch branch)
{
   var db = new OrganizationDbContext();
   db.Add(branch);
   db.SaveChanges();
} 

db.add(branch)应该转换为db.branches.add(branch)

I find where the problem is:

public void PostBranch(Branch branch)
{
   var db = new OrganizationDbContext();
   db.Add(branch);
   db.SaveChanges();
} 

db.Add(branch) should convert to db.Branches.Add(branch)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文