SQL layer:
I have a table

Entity Chip Level:
I have the following rule: all offers that have a null state are outstanding offers, State is true - Accepted offers, State is false - rejected offers. In addition, some of the fields are used only for outstanding, partially - only for Accepted, etc. I use the first approach to the database, so I updated the EF model from the database and renamed the Offer object to OfferBase and created 3 child classes:

/ /. "" , Status = true ( Status is null) . Entity Framework? Accept, ( )
// record with ID=1 exists, but State is null, so, EF can not find this record and offer will be null after the following string
var offer = (from i in _db.OfferBases.OfType<EFModels.OfferAccepted>() where i.ID == 1 select i).FirstOrDefault();
OfferBase, :
'System.Data.Entity.DynamicProxies.OfferOutstanding_9DD3E4A5D716F158C6875FA0EDF5D0E52150A406416D4D641148F9AFE2B5A16A' "VTS.EFModels.OfferAccepted".
var offerB = (from i in _db.OfferBases where i.ID == 1 select i).FirstOrDefault();
var offer = (EFModels.OfferAccepted)offerB;
:
3 . : AcceptOffer, DeclineOffer OutstandingOffer.
AcceptOffer:
- _
- ContactID
- FirstContactDate
- LastContactDate
- [... 5-10 ...]
DeclineOffer:
OutstandingOffer:
- _
- ContactID
- FirstContactDate
- LastContactDate
- [... 5-10 ...]
? , , , ?