I have object that is serialized into db.
The question is where to keep run-time properties (like last run time, etc.), in same class or separate class or derived class? What should be the best practices in this scenario?
Updated: For example: Object Train
properties: type, weight, height, speed etc
run-time: travel start date, travel end date
Looking at the example now added I would say that you should move those out, and instead use encapsulation – i.e. A TrainJourney class that has the “runtime” properties (that really isn’t the right term here) and a reference to a Train instance that is your data entity.
Adding extra properties (commonly in a partial class) to a data entity is OK as long as they tie directly to the data entity. This typically means calculated values, deferred/cached values, interpretations (IsOpen rather than Status==Status.Open etc).
In your case, the extra properties relate to unrelated concepts; by separation of concerns you are confusing things by mixing that into your Train class. So: don’t.