c# - Casting a derived class back to base class -
i have simple (c#, .net 4.0) code uses linq-to-sql class, , i'm trying "extend" object add own fields. let's linq generated class called databaserow, , want add couple of bool values internal use:
public class extendeddatabaserow: databaserow { public bool readytowrite; public bool changed; } this works fine in code: can create objects of type extendeddatabaserow etc. however, i'd write these objects database. let's want write object changedrow (of type extendeddatabaserow) database:
dataclassesdatacontext dc = new dataclassesdatacontext(); databaserow newrow = (databaserow) changedrow; // "cast" extended object base type dc.databaserows.insertonsubmit(newrow); dc.submitchanges(); this throws error
object reference not set instance of object.
when trying insertonsubmit.
i create new databaserow object , copy each parameter source object, seems bit messy me. can cast extended object base object, , if doing wrong? or i'm doing fine, , error more linq-specific?
i'm still new c#, , in particular terminology used, apologies in advance if daft question.
you don't need derive new class extend linq sql entities, classes marked partial exact reason e.g.
public partial class databaserow { public bool readytowrite { get; set; } public bool changed { get; set; } } this recommended way of extending db entities generated designer , means don't have cast.
Comments
Post a Comment