I am new to .NET developing. I faced trouble in my C# .NET CODE. I wrote update function and include every NOT NULL fields into the function. but null exception error will come during executing. please help me. how to solved it
.
error: Object reference not set to an instance of an object.
public bool UpdateOwner(Prod_APIOwner OwnerDetails, object myGrid)
{
var context = _tbbossWebEntities;
using( var dbContextTransaction = context.Database.BeginTransaction())
{
try
{
Array gridData = (Array)myGrid;
Dictionary<string, object> dictionary;
int FactoryID;
Prod_API_OwnerWiseFactory PROF;
OwnerDetails.EntryDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm tt"));
OwnerDetails.EntryUser = 1;
Prod_APIOwner u = new Prod_APIOwner();
u = _tbbossWebEntities.Prod_APIOwner.Where(a => a.OwnerID == OwnerDetails.OwnerID).FirstOrDefault();
u.APIKey = OwnerDetails.APIKey;
u.IsActive = OwnerDetails.IsActive;
u.APIOwnerGroupName = OwnerDetails.APIOwnerGroupName;
//u.OwnerID = OwnerDetails.OwnerID;
u.EntryDate = DateTime.Now;
u.EntryUser = 1;
context.Prod_APIOwner.Attach(u);
var entry = context.Entry(u);
//entry.Property(a => a.OwnerID).IsModified = true;
entry.Property(a => a.APIKey).IsModified = true;
entry.Property(a => a.EntryDate).IsModified = true;
entry.Property(a => a.EntryUser).IsModified = true;
entry.Property(a => a.IsActive).IsModified = true;
entry.Property(a => a.APIOwnerGroupName).IsModified = true;
context.SaveChanges();
if(u.OwnerID != null)
{
var existingFactory = _tbbossWebEntities.Prod_API_OwnerWiseFactory.Where(a => a.OwnerID == u.OwnerID).ToList();
context.Prod_API_OwnerWiseFactory.RemoveRange(existingFactory);
foreach (var item in gridData)
{
dictionary = new Dictionary<string, object>();
dictionary = (Dictionary<string, object>)item;
FactoryID = Convert.ToInt32(dictionary["FactoryID"].ToString());
PROF = new Prod_API_OwnerWiseFactory();
PROF.OwnerID = u.OwnerID;
PROF.FactoryID = FactoryID;
PROF.EntryDate = DateTime.Now;
PROF.IsActive = u.IsActive;
PROF.APIOwnerID = u.APIOwnerID;
PROF.EntryUser = 1;
context.Prod_API_OwnerWiseFactory.Add(PROF);
context.SaveChanges();
}
}
dbContextTransaction.Commit();
return true;
}
catch(Exception ex)
{
dbContextTransaction.Rollback();
throw;
}
finally
{
dbContextTransaction.Dispose();
}
}
}
}
DATABASE QUERY
CREATE TABLE [tbboss].[Prod_APIOwner](
[APIOwnerID] [numeric](5, 0) IDENTITY(1,1) NOT NULL,
[OwnerID] [numeric](3, 0) NOT NULL,
[APIKey] [varchar](100) NOT NULL,
[EntryDate] [datetime] NOT NULL,
[EntryUser] [int] NOT NULL,
[IsActive] [bit] NOT NULL,
[UpdateUser] [int] NULL,
[APIOwnerGroupName] [varchar](100) NULL,
CONSTRAINT [PK_Prod_APIOwner] PRIMARY KEY CLUSTERED
(
[APIOwnerID] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [tbboss].[Prod_APIOwner] ADD DEFAULT ((0)) FOR [IsActive]
GO
ALTER TABLE [tbboss].[Prod_APIOwner] WITH CHECK ADD CONSTRAINT [FK_Prod_APIOwner_Owner] FOREIGN KEY([OwnerID])
REFERENCES [tbboss].[Owner] ([OwnerID])
GO
ALTER TABLE [tbboss].[Prod_APIOwner] CHECK CONSTRAINT [FK_Prod_APIOwner_Owner]
GO
ALTER TABLE [tbboss].[Prod_APIOwner] WITH CHECK ADD CONSTRAINT [FK_Prod_APIOwner_UpdateUser] FOREIGN KEY([UpdateUser])
REFERENCES [tbboss].[UACUser] ([UserID])
GO
ALTER TABLE [tbboss].[Prod_APIOwner] CHECK CONSTRAINT [FK_Prod_APIOwner_UpdateUser]
GO
ALTER TABLE [tbboss].[Prod_APIOwner] WITH CHECK ADD CONSTRAINT [FK_Prod_APIOwner_User] FOREIGN KEY([EntryUser])
REFERENCES [tbboss].[UACUser] ([UserID])
GO
ALTER TABLE [tbboss].[Prod_APIOwner] CHECK CONSTRAINT [FK_Prod_APIOwner_User]
GO