【发布时间】:2020-11-01 13:50:57
【问题描述】:
我有一个一对多/多对多的关系 b/w UserProfile & AddressMaster 通过中间表 UserAddress。
public class UserProfile
{
public string UserID { get; set; }
public string Name{ get; set; }
public ICollection<UserAddress> UserAddress{ get; set; }
}
public class AddressMaster
{
public string AddrID{ get; set; }
public string AddressLine1{ get; set; }
public ICollection<UserAddress> UserAddress{ get; set; }
public TheatreLocation TheatreLocation { get; set; }
}
public class UserAddress
{
public Guid UserID { get; set; }
public Guid AddressID { get; set; }
public UserProfile UserProfile{ get; set; }
public AddressMaster AddressMaster { get; set; }
}
现在我正在尝试通过 JSON 从 API 输入数据:
{
"Name": "Neo",
"address":
{
"addressLine1": "House not"
}
}
为此,我有一个 DTO 来获取这些参数。下面是我的控制器代码。
public async Task<Guid> Handle(CreateUserCommand request, CancellationToken cancellationToken)
{
var userEntity = new UserProfile
{
Name = request.Name,
};
_context.UserProfile.Add(userEntity);
AddressMaster addressMaster = request.Address;
_context.AddressMaster.Add(addressMaster);
UserAddresses userAddresses = new UserAddresses
{
AddressID = addressMaster.AddressID,
UserID = userEntity.UserID
};
_context.UserAddresses.Add(userAddresses);
await _context.SaveChangesAsync(cancellationToken);
return userEntity.UserID;
}
我正在尝试将数据单独存储到各个表中,然后尝试将其映射到中间表。我不确定那是正确的方法,但是数据正在存储在数据库中。
谢谢:)
【问题讨论】:
-
这个问题我不清楚。您想要表示(可以反序列化)这 3 个对象的 JSON 吗?
-
控制器接收到json,我的dto获取数据。我想从那里将数据保存到表中。
UserProfile userProfile = new UserProfile {Name = requestDto.Name}同样,我也得到了地址。不知道将数据保存到所涉及的 3 个表的 linq。 -
addressMaster.AddressID和userEntity.UserID分配给new UserAddresses时的值是多少? -
我建议你阅读Ultimate Asp.Net Core 3 Web API 的书。这本书非常有效。我认为这就是你所需要的。我不是图书广告商,只是一个读者。
-
@GertArnold 它是一个向导。它不为空。
标签: asp.net entity-framework asp.net-core .net-core ef-core-3.0