Этот код работает отлично в эф 4.0, но я просто повышен до Е.Ф. 5.0 и получил следующее сообщение об ошибке при вызове сохранить измененияСохранить изменения Ошибка не может вызвать абстрактный класс C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Objects;
using OSPos.DBContext;
namespace OSPos.OSPosContext
{
public abstract class ContextBase
{
public abstract bool SaveChanges();
protected bool SaveChanges(ObjectContext context)
{
try
{
int i = context.SaveChanges();
if (i == 0)
return false;
return true;
}
catch (Exception ex)
{
throw new EntityContextException("SaveChanges failed.", ex);
}
}
public abstract void DeleteObject(object entity);
protected void DeleteObject(ObjectContext context, object entity)
{
try
{
context.DeleteObject(entity);
}
catch (Exception ex)
{
throw new EntityContextException("DeleteObject failed.", ex);
}
}
protected static string pamsConnectionString;
public static string PamsConnectionString
{
set { pamsConnectionString = value; }
}
protected static string pamssysdbfConnectionString;
public static string PamssysdbfConnectionString
{
set { pamssysdbfConnectionString = value; }
}
#region Encryption Fields
public static string encryptionServiceUrl;
public static bool encryptionEnabled = false;
private static string encryptionTicket;
#endregion
}
}
Мой класс призвание заключается в следующем
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using System.ComponentModel;
using System.Text.RegularExpressions;
using CMSNIDataobjects.Lookups;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using OSPos.OSPosContext;
namespace OSPos.OSPosContext
{
public class cmsContext : ContextBase
{
private OSPosEntities1 _OsPosEntities;
protected OSPosEntities1 OSPosEntities
{
get
{
if (_OsPosEntities == null)
{
// try
// {
_OsPosEntities = new OSPosEntities1();//knowledgebaseEntities1(@"metadata=res://*/KnowledgeBase.csdl|res://*/KnowledgeBase.ssdl|res://*/KnowledgeBase.msl;provider=System.Data.SqlClient;provider connection string="data source=DAVID_BUCKLEY\DBSQLSERVER28R2;initial catalog=knowledgebase;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"");}
//}
//catch (Exception ex)
//{
// throw new EntityContextException("cmsEntities object could not be created.", ex);
//}
}
return _OsPosEntities;
}
}
public override int SaveChanges()
{
return base.SaveChanges();
//this is where i am getting the error in reference to abstract class
}
public override void DeleteObject(object entity)
{
}
}
}
какое это исключение? –
Вы не можете назвать этот метод, потому что он абстрактный. Какой у Вас вопрос? – nvoigt
PS. Ваш наследник 'cmsContext' абстрактного класса ContextBase' не переопределяет абстрактные методы bool SaveChanges(). Поэтому он не будет компилироваться –