我正在使用 Marten 作为我的数据层,到目前为止效果很好,但我遇到了一个没有意义的问题。我有一个简单的方法可以保存交易(购买)然后更新列表,将交易的 ID 添加到集合中。我的问题是,Marten 似乎没有存储我更新的列表,尽管它正在存储交易。
当我查看数据库时,TransactionIds 属性为空,但如果我单步执行代码,一切似乎都正确执行。我在这里做错了吗?
public async Task CreateListingTransactionAsync(ListingTransaction transaction)
{
if (transaction == null)
throw new ValidationException("Transaction is required to create a transaction");
bool isNew = transaction.Id == Guid.Empty;
await _listingTransactionValidator.ValidateAndThrowAsync(transaction);
using (var session = _store.LightweightSession())
{
session.Store(transaction);
if (isNew)
{
var listing = await session.LoadAsync<Listing>(transaction.ListingId);
if (listing == null)
throw new EntityNotFoundException($"Listing with Id: {transaction.ListingId} not found");
if (listing.TransactionIds == null)
listing.TransactionIds = new List<Guid>();
listing.TransactionIds.Add(transaction.Id);
session.Store(listing);
}
await session.SaveChangesAsync();
}
}