
01
搭骨架的 3 个明确步骤(带顺序) 每一步怎么算"做对了"的验证标准 新手最常踩的 3 个错误,提前避开
02
Inventory.App/ ← 界面层(Avalonia)Inventory.Application/ ← 应用层Inventory.Domain/ ← 领域层(老板房间)Inventory.Infrastructure/ ← 基础设施层(EF/SQLite)03
// Inventory.Domain/Product.csnamespace Inventory.Domain;public class Product{ public string Code { get; private set; } = ""; // 商品编码,规矩①:必须以 SP- 开头 public string Name { get; private set; } = ""; public int Qty { get; private set; } // 库存数量 // 所有对状态的修改,都从这里走——规矩只此一家 public Result AdjustQty(int delta) { if (Qty + delta < 0) return Result.Fail("库存不足"); // 规矩②:不能为负 Qty += delta; return Result.Ok(); }}04
// Inventory.App/ViewModels/ProductViewModel.cs[RelayCommand]private async Task OutboundAsync(){ var product = await _repo.GetAsync(Id); // 拿到领域对象 var result = product.AdjustQty(-Qty); // 规矩在领域层执行 if (result.IsOk) await _repo.SaveAsync(product); // 存回去 else ShowError(result.Message); // 只展示结果}05
Models/) | Domain/) | |
|---|---|---|
if 校验 | ||
06
07
夜雨聆风