NTier 逻辑层与模型,处理 CRUD
我的团队正在考虑重新架构我们的一些系统以满足以下模式
我们有一些模型,例如:
public class Configuration
{
public int Id { get; set; }
public string Description { get; set; }
}
public class Manufacturer
{
public int Id { get; set; }
public string Description { get; set; }
}
public class Car
{
public int Id { get; set; }
public string Name { get; set; }
public Manufacturer Make { get; set; }
public IEnumerable<Configuration> AvailableConfigurations { get; set; }
}
在逻辑层中,我们有一个 CarLogic 类,例如
public interface ICarLogic
{
void Add(Car);
void Update(Car);
void Delete(Car);
void GetAll(Car);
void GetByManufacturer(ManfacturerId);
}
数据库架构
表
Car
列:ID、型号
表:配置 列:ID、描述
表:制造商 列:ID、描述
表:Car_Configs 列:Car_Id_Fk、Configuration_Id_Fk
现在提问,
这可能是一个很好的例子,其中 CQRS 设计模型更适合。
关于您的问题:
1)我个人会将更新分为:更新汽车的基本属性,以及单独添加/更新/删除给定汽车配置的方法。这基本上是为了避免每次检查所有可用配置的更改。
2)我将明确创建仅相关视图模型所需的最少 READ 查询。