领域建模
ๅจไปปไฝ้ขๅ้ฉฑๅจ็ๅบ็จ็จๅบ็ๆ ธๅฟ๏ผๆฏ่กจ็คบ็ณป็ปๆ ธๅฟ็ฅ่ฏ ๅไธๅก่งๅ็ๆจกๅใ่ฏๅฅฝ็้ขๅๅปบๆจกๆๅณ็ๅฐ็ฐๅฎไธ็็ๆฆๅฟต่ฝฌๅไธบ ๅ ทๆ่กจ็ฐๅใๅ ่ๆงๅไธ่ดๆง็่ฝฏไปถ็ปๆใ
ๅฎไฝ
ๅฎไฝๆฏไธไธชไธป่ฆ็ฑๅ ถ่บซไปฝๅฎไน็ๅฏน่ฑก๏ผ่ไธไป ไป ๆฏๅ ถๅฑๆงใๅณไฝฟๅฑๆง้ๆถ้ดๅๅ๏ผๅฎไฝ็่บซไปฝไฟๆไธๅใ
ไธป่ฆ็นๅพ๏ผ
- ๅ
ทๆๅฏไธ่บซไปฝ๏ผ้ๅธธๆฏไธไธช
Id
๏ผใ - ้่ฆ็ๆฏๅฎไฝ็ๆฏ่ฐ๏ผ่ไธไป ไป ๆฏๅฎๅ ๅซ็ไปไนใ
- ๅ ถๅฑๆงๅฏไปฅ้็ๆถ้ดๅๅใ
ไฝฟ็จ Lino ๅๅปบๅฎไฝ
่ฆไฝฟ็จ Lino ๅๅปบๆฐๅฎไฝ๏ผ่ฏทๆง่ก๏ผ
lino entity new
ๅฝไปค่กๅฉๆๅฐ่ฏข้ฎ๏ผ
- ๆๅก โ ๅฎไฝๅฐ่ขซๅๅปบ็ๆๅกใ
- ๆจกๅ โ ๅฎไฝๅฐ่ขซๅๅปบ็ๆจกๅ๏ผไป ้ๆจกๅๅๆๅก๏ผใ
- ๅฎไฝๅ็งฐ โ ๅๅๆฐๆฎๅบ่กจไธญไฝฟ็จ็ๅ็งฐใ
็ถๅ๏ผๆจๅฐๅฎไนๆๆๅฎไฝ็ๅญๆฎต๏ผๅนถ้ ็ฝฎๆฏไธชๅญๆฎตใ
ๅฏ็จๅญๆฎต็ฑปๅ
็ฑปๅ | ๆ่ฟฐ | ่ๅด / ๅคๆณจ |
---|---|---|
short | 16ไฝๆดๆฐ | -32,768 โ 32,767 |
int | 32ไฝๆดๆฐ | -2,147,483,648 โ 2,147,483,647 |
long | 64ไฝๆดๆฐ | -9,223,372,036,854,775,808 โ 9,223,372,036,854,775,807 |
string | ๆๆฌ | ๆๅค็บฆ20ไบฟๅญ็ฌฆ |
bool | ๅธๅฐๅผ | true ๆ false |
Guid | ๅ จๅฑๅฏไธๆ ่ฏ็ฌฆ | ๅๅธๅผๅฏไธๆง |
decimal | ้ซ็ฒพๅบฆๅฐๆฐ | ้ๅ่ดงๅธๅผ |
float | ๆตฎ็นๆฐ๏ผ32ไฝ๏ผ | ็บฆ6-9ไฝ็ฒพๅบฆ |
double | ๆตฎ็นๆฐ๏ผ64ไฝ๏ผ | ็บฆ15-17ไฝ็ฒพๅบฆ |
DateTime | ๆฅๆๅๆถ้ด | ๅ ๅซๆถๅบ |
DateOnly | ไป ๆฅๆ (C# 10+) | โ |
TimeOnly | ไป ๆถ้ด (C# 10+) | โ |
Entity | ๅผ็จๅฆไธๅฎไฝ | 1:1 ๆ 1:N |
Value Object | ไธๅฏๅๅผๅฏน่ฑก | ไพๅฆ๏ผๅฐๅ๏ผCPF |
Enum | ๆไธพ | ๅบๅฎๅผ้ๅ |
List<Entity> | ๅฎไฝๅ่กจ | 1:N |
ManyToMany | ๅคๅฏนๅค | ้่ฆไธญ้ด่กจ |
็คบไพ
ๅๅปบๅฎไฝ Person
๏ผ
โโโโโโฌโโโโโฌโโโโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ โ PK โ FK โ Property name โ Type โ Length โ Required โ Auto-increment โ โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค โ x โ โ Id โ int โ โ x โ x โ โโโโโโผโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค โ โ โ Name โ string โ 100 โ x โ โ โโโโโโดโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโ
Lino ็ๆ็็ปๆ๏ผ
MyApp/ โโโ src/ โโโ Services/ โโโ MyService/ โโโ Domain/ โโโ MyApp.MyService.Domain.csproj โโโ Aggregates/ โโโ People/ โโโ Person.cs โโโ Errors/ โ โโโ PersonErrors.cs โโโ Repositories/ โ โโโ IPersonRepository.cs โโโ Resources/ โโโ Person/ โโโ PersonResources.resx โโโ PersonResources.en.resx โโโ PersonResources.pt-BR.resx
ๅฎไนๅฎๅฎไฝๅ๏ผไฝฟ็จ Lino ็ฎก็่ฟ็งป๏ผไฟๆๆฐๆฎๅบๅๆญฅใ ่ฏฅ่ฟ็จๅฐๅจๆไน ๅฑ็ซ ่ไธญ่ฏฆ็ป่ฏดๆใ
ๅผๅฏน่ฑก
ไธไธช ๅผๅฏน่ฑก ่กจ็คบไธไธชไป ็ฑๅ ถๅฑๆงๅฎไน็้ขๅๆฆๅฟต โ ๅฎๆฒกๆ่ช่บซ็่บซไปฝๆ ่ฏใๅฆๆไธคไธชๅผๅฏน่ฑก็ๆๆๅฑๆงๅผ้ฝ็ธๅ๏ผๅ่ฎคไธบๅฎไปฌ็ธ็ญใ
ไธป่ฆ็นๅพ๏ผ
- ๅๅปบๅไธๅฏๅใ
- ๆฒกๆ
Id
ใ
ไฝฟ็จ Lino ๅๅปบๅผๅฏน่ฑก
ๆง่ก๏ผ
lino value-object new
CLI ไผ่ฏข้ฎ๏ผ
- ๆๅก โ ๅๅปบๅฏน่ฑก็ๆๅกใ
- ๆจกๅ โ ๅๅปบๅฏน่ฑก็ๆจกๅ๏ผไป ้ๆจกๅๅๆๅก๏ผใ
- ไฝ็ฝฎ โ ๅๆ นๆ็นๅฎ่ๅๆ นใ
- ๅผๅฏน่ฑกๅ็งฐใ
็ถๅๅฎไนๆๆ่ฏฅๅฏน่ฑก็ๅญๆฎตใ
ๅฏ็จๅญๆฎต็ฑปๅ
็ฑปๅ | ๆ่ฟฐ | ๅคๆณจ |
---|---|---|
short | 16 ไฝๆดๆฐ | -32,768 โ 32,767 |
int | 32 ไฝๆดๆฐ | -2,147,483,648 โ 2,147,483,647 |
long | 64 ไฝๆดๆฐ | -9,223,372,036,854,775,808 โ 9,223,372,036,854,775,807 |
string | ๆๆฌ | ๆๅค็บฆ 20 ไบฟๅญ็ฌฆ |
bool | ๅธๅฐๅผ | true /false |
decimal | ็ฒพ็กฎๅฐๆฐ | ่ดงๅธๅผ |
float | ๆตฎ็นๆฐ๏ผ32 ไฝ๏ผ | ็บฆ 6โ9 ไฝๆฐๅญ |
double | ๆตฎ็นๆฐ๏ผ64 ไฝ๏ผ | ็บฆ 15โ17 ไฝๆฐๅญ |
DateTime | ๆฅๆ/ๆถ้ด | ๅ ๅซๆถๅบ |
DateOnly | ไป ๆฅๆ | C# 10 ๅไปฅไธ |
TimeOnly | ไป ๆถ้ด | C# 10 ๅไปฅไธ |
็คบไพ
ๅผๅฏน่ฑก Address
๏ผ
โโโโโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโ โ Property name โ Type โ Length โ Required โ โโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโค โ Street โ string โ 100 โ x โ โโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโค โ Number โ string โ 10 โ x โ โโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโค โ Neighborhood โ string โ 50 โ โ โโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโค โ City โ string โ 100 โ x โ โโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโค โ State โ string โ 2 โ x โ โโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโค โ PostalCode โ string โ 20 โ x โ โโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโค โ Country โ string โ 100 โ x โ โโโโโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโโ
็ๆ็ๆไปถ็ปๆ๏ผ่ๅ Person
๏ผ๏ผ
MyApp/ โโโ src/ โโโ Services/ โโโ MyService/ โโโ Domain/ โโโ MyApp.MyService.Domain.csproj โโโ Aggregates/ โโโ People/ โโโ Person.cs โโโ ValueObjects/ โ โโโ Address.cs โโโ Errors/ โ โโโ AddressErrors.cs โ โโโ PersonErrors.cs โโโ Repositories/ โ โโโ IPersonRepository.cs โโโ Resources/ โโโ Address/ โ โโโ AddressResources.resx โ โโโ AddressResources.en.resx โ โโโ AddressResources.pt-BR.resx โโโ Person/ โโโ PersonResources.resx โโโ PersonResources.en.resx โโโ PersonResources.pt-BR.resx
ไธๅฎไฝไธๆ ท๏ผMigrations ๅฏไปฅ็ฑ Lino ็ฎก็๏ผไปฅไฟๆๆฐๆฎๆจกๅๅๆญฅใ
ๆไธพ
ๅจ้ขๅ้ฉฑๅจ่ฎพ่ฎก๏ผDDD๏ผไธญ๏ผๆไธพๅฏไปฅ่ถ
่ถC#ไผ ็ป็enum
ใๅฎไปฌๅฏไปฅๆฏไธฐๅฏ็ๅฏน่ฑก๏ผ
่กจ็คบๅบๅฎ็ถๆ๏ผๅ
ๅซ้ช่ฏใ่พ
ๅฉๆนๆณ็่ณ่กไธบใ
ๅจๆบ๏ผ
- C# ็
enum
ไป ้ไบๆดๆฐๆๅญ็ฌฆไธฒๅผใ - ๅฐๆไธพๅปบๆจกไธบ็ฑปๅฏไปฅๆไพๆด้ซ็็ตๆดปๆงๅ่กจ่พพๅใ
ไธป่ฆ็น็น๏ผ
- ๅฎไปฌๆฏ็ปงๆฟ่ชๅ
ฑๅๅบ็ฑป็็ฑป๏ผๅฐ่ฃ
ไบ
Id
ๅName
ใ - ๅ ่ฎธๆทปๅ ้ช่ฏใ่พ ๅฉๆนๆณๅ่กไธบใ
ไฝฟ็จ Lino ๅๅปบๆไธพ
ๆง่ก๏ผ
lino enum new
ๅฉๆไผ่ฏข้ฎ๏ผ
- ๆๅกใ
- ๆจกๅ๏ผๅฆๆ้็จ๏ผใ
- ไฝ็ฝฎ โ ๅๆ่ๅ็ๆ นใ
- ๆไธพๅ็งฐใ
- ็ฑปๅ โ ไผ ็ป็
enum
ๆๆบ่ฝๆไธพ๏ผclass
๏ผใ - ๅญๅจๆนๅผ โ ๆฐๆฎๅบไธญ็
int
ๆstring
ใ
็คบไพ
ๆไธพ PersonStatus
๏ผ
โโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ โ Value โ Name โ Display Name โ โโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโค โ 1 โ Active โ Active โ โโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโค โ 2 โ Inactive โ Inactive โ โโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโค โ 3 โ Suspended โ Suspended โ โโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโค โ 4 โ Deleted โ Deleted โ โโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโ
็ๆ็็ปๆ๏ผ
MyApp/ โโโ src/ โโโ Services/ โโโ MyService/ โโโ Domain/ โโโ MyApp.MyService.Domain.csproj โโโ Aggregates/ โโโ People/ โโโ Person.cs โโโ Enums/ โ โโโ PersonStatus.cs โโโ ValueObjects/ โ โโโ Address.cs โโโ Errors/ โ โโโ AddressErrors.cs โ โโโ PersonErrors.cs โโโ Repositories/ โ โโโ IPersonRepository.cs โโโ Resources/ โโโ Address/ โ โโโ AddressResources.resx โ โโโ AddressResources.en.resx โ โโโ AddressResources.pt-BR.resx โโโ Person/ โ โโโ PersonResources.resx โ โโโ PersonResources.en.resx โ โโโ PersonResources.pt-BR.resx โโโ PersonStatus/ โโโ PersonStatusResources.resx โโโ PersonStatusResources.en.resx โโโ PersonStatusResources.pt-BR.resx
ๅฐๆไธพๅผๅญๅจไธบ string
ๆฏๅฏ่ก็๏ผไธ่ฝๆๅๅฏ่ฏปๆง๏ผไฝ้ๅธธๅจๆง่ฝๅๅญๅจๆน้ขๆ็่พไฝใ
ๅ ๆญคๅปบ่ฎฎไฝฟ็จ int
ๅญๅจ๏ผๅนถไธบๆไธพๅๅปบ่พ
ๅฉๅฎไฝ๏ผ่กจ๏ผ๏ผๅ
ถไธป้ฎๅฏนๅบๆไธพๅผ๏ผไปฅไฟ่ฏๅผ็จๅฎๆดๆงๅนถ็ฎๅ็ปดๆคใ
ๅฎไนๆไธพๅ๏ผไฝฟ็จ Lino ็ๆๅนถๅบ็จ Migrations๏ผ็กฎไฟๆฐๆฎๅบๅๆ ้ขๅๆจกๅใ ่ฏฆ็ปๅ ๅฎน่งๆไน ๅฑ็ซ ่ใ