Entity Framework Code First Softball Stats Database Schema
It depends on how you are planning on aggregating the stats.

Right now you have fields in your stat table that appear to really only apply when they are associated with a specific entity (player or team). For example, what does RBI on a stats record associated with a team mean?

I would avoid a design where a field like RBI means different things depending on what it's associated with. I'd personally prefer something like RBI to be only associated with a player. 

In the case you do want to generate stats like "give me all RBI for the game" too and store it in the same field, you can use table per hierarchy and make entities TeamStats and PlayerStats based on a discriminator, and have RBI on the base class. I will caution that this approach is more difficult to set up and can lead to difficulty when maintaining it.

Another option is to track stats by player and compute team stats/game stats on demand (maybe via a stored proc, etc). The drawback there is that if doing so becomes computationally expensive then you have to worry about staging the data and dealing with possibly out-of-date data.

I would recommend setting up the following relationship structures:


Players belong to Teams
Games have their own Id and 2 Team FKs (so two teams can play multiple times)
A Stat is the stats for a player for 1 game, that has a composite PK consisting of Player Id and Game Id (I think this is no longer a hassle with EF).


The stats-per-player-per-game approach will allow you the most flexibility but also potentially the most on-demand computational overhead, but I'd start there until you start experiencing bottlenecks. 

Since you're going to be doing decimal computations I'd avoid float and go with decimal to avoid potential loss of precision.

As for how to present the computed stats, I'd use stored procedures/functions whose results get mapped to web API models so the data is immutable as soon as you get it from the database. If that becomes annoying or too complex, you can also go the route of querying and aggregating/computing the stats in a middle application layer. I would avoid doing any computations on the front end.