将项目发布到数据库中而无需填写外键
我正在为银行系统创建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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我发现问题所在:
db.add(branch)
应该转换为db.branches.add(branch)
I find where the problem is:
db.Add(branch)
should convert todb.Branches.Add(branch)