Skip to main content

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 identifier
  • CommonName: Common name (e.g., "Largemouth Bass")
  • ScientificName: Scientific name (e.g., "Micropterus salmoides")
  • Description: Species description
  • AverageSize: Average size information
  • Habitat: Habitat information
  • Diet: Diet information
  • IsActive: 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 identifier
  • SourceSpeciesId: Source species
  • TargetSpeciesId: Target species
  • RelationshipType: LifeStage, Subspecies, Hybrid, Synonym, etc.
  • IsPrimaryParent: For hybrid relationships
  • Notes: Relationship notes

Relationships:

  • Many-to-one: FishSpecies (source and target)

TaxonomicRank

Purpose: Taxonomic hierarchy (Family, Genus, Species, etc.).

Key Fields:

  • Id (int): Unique identifier
  • RankName: Rank name (Family, Genus, Species, etc.)
  • RankLevel: Numeric level
  • ParentRankId: Parent rank

Relationships:

  • Many-to-one: TaxonomicRank (parent)
  • One-to-many: FishSpecies