Fish Species Entities
Entities for fish species, taxonomic relationships, and species data.
FishSpecies
Purpose: Fish species entity with taxonomic information.
Key Fields:
Id(int): Unique identifierCommonName: Common name (e.g., "Largemouth Bass")ScientificName: Scientific name (e.g., "Micropterus salmoides")Description: Species descriptionAverageSize: Average size informationHabitat: Habitat informationDiet: Diet informationIsActive: Whether species is active
Relationships:
- Many-to-many: FishSpeciesRelationship (relationships to other species)
- Many-to-one: TaxonomicRank
- One-to-many: FishingLogEntry, CatchDetail, PersonalBestCriteria
Usage Patterns:
// Get species by common name
var species = context.FishSpecies
.Where(fs => fs.CommonName.Contains("Bass") && fs.IsActive)
.Include(fs => fs.TaxonomicRank)
.ToList();
// Get species with relationships
var species = context.FishSpecies
.Include(fs => fs.Relationships)
.ThenInclude(fsr => fsr.TargetSpecies)
.FirstOrDefault(fs => fs.Id == speciesId);
FishSpeciesRelationship
Purpose: Relationships between fish species (life stages, subspecies, hybrids, synonyms).
Key Fields:
Id(int): Unique identifierSourceSpeciesId: Source speciesTargetSpeciesId: Target speciesRelationshipType: LifeStage, Subspecies, Hybrid, Synonym, etc.IsPrimaryParent: For hybrid relationshipsNotes: Relationship notes
Relationships:
- Many-to-one: FishSpecies (source and target)
TaxonomicRank
Purpose: Taxonomic hierarchy (Family, Genus, Species, etc.).
Key Fields:
Id(int): Unique identifierRankName: Rank name (Family, Genus, Species, etc.)RankLevel: Numeric levelParentRankId: Parent rank
Relationships:
- Many-to-one: TaxonomicRank (parent)
- One-to-many: FishSpecies
Related Documentation
- Fish Species Relationships - Complete species relationship system
- Fishing Logs - Catch logging
- Personal Best - PB tracking