Have your base class inherit from an Interface (such as IBaseModel) that has contains CrDate and CrBy (maybe name as well, for logging purposes), but not the specialized information from your other classes.
It would look something like:
public class BaseModel: IBaseModel
{
public DateTime CrDate { get; set; }
public int UserId { get; set; }
public ApplicationUser User { get; set; }
public bool IsDeleted { get; set; }
}
public interface IBaseModel
{
DateTime CrDate { get; set; }
ApplicationUser User { get; set; }
}
Then your generic logging class can take IBaseModel as a parameter and get those two properties.
public void LogWhatever(IBaseModel logModel)
{
//...
}