一对多关系LINQ更新查询
One to many relationship LINQ update query
我有一对多/多对多关系 b/w UserProfile
& AddressMaster
到中间 table 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; }
}
现在我正在尝试输入从 API 到 JSON 的数据:
{
"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;
}
我正在尝试将数据单独存储到各自的 table 中,然后尝试将其映射到中间 table。我不太确定这是正确的方法,但数据正在存储在数据库中。
谢谢:)
看起来因为没有任何答案,在查看了一些例子之后,我认为我的问题本身的答案是正确的方法。
考虑您要输入的记录:
AddressMaster
<---> UserAddress
<---> UserProfile
如果实体配置已经使用 fluent API 配置(many-to-many 现在需要配置 fluent API)映射 AddressID
和 UserID
作为UserAddress table.
的外键
现在,您将各自的数据分别映射到 AddressMaster
和 UserProfile
table 中,并将其添加到上下文中。
var userEntity = new UserProfile
{
Name = request.Name,
};
_context.UserProfile.Add(userEntity);
AddressMaster addressMaster = request.Address;
_context.AddressMaster.Add(addressMaster);
现在将这些输入的实体映射到 UserAddresses
实体并保存更改。
我有一对多/多对多关系 b/w UserProfile
& AddressMaster
到中间 table 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; }
}
现在我正在尝试输入从 API 到 JSON 的数据:
{
"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;
}
我正在尝试将数据单独存储到各自的 table 中,然后尝试将其映射到中间 table。我不太确定这是正确的方法,但数据正在存储在数据库中。
谢谢:)
看起来因为没有任何答案,在查看了一些例子之后,我认为我的问题本身的答案是正确的方法。
考虑您要输入的记录:
AddressMaster
<---> UserAddress
<---> UserProfile
如果实体配置已经使用 fluent API 配置(many-to-many 现在需要配置 fluent API)映射 AddressID
和 UserID
作为UserAddress table.
现在,您将各自的数据分别映射到 AddressMaster
和 UserProfile
table 中,并将其添加到上下文中。
var userEntity = new UserProfile
{
Name = request.Name,
};
_context.UserProfile.Add(userEntity);
AddressMaster addressMaster = request.Address;
_context.AddressMaster.Add(addressMaster);
现在将这些输入的实体映射到 UserAddresses
实体并保存更改。