C# 对象不包含“的定义”;“保存更改”;
我犯了一个错误,这太伤脑筋了。。。我在我的项目中添加了一个分部类,并将savechangeexeptionetities作为它的名称 我得到了这个错误: 对象不包含“保存更改”的定义 下面是代码:C# 对象不包含“的定义”;“保存更改”;,c#,C#,我犯了一个错误,这太伤脑筋了。。。我在我的项目中添加了一个分部类,并将savechangeexeptionetities作为它的名称 我得到了这个错误: 对象不包含“保存更改”的定义 下面是代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.Entity.Valida
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity.Validation;
using System.ComponentModel;
namespace WindowsFormsApplication6
{
public partial class SaveChangeExeptionEntities
{
public override int SaveChanges()
{
try
{
return base.SaveChanges();
}
catch (DbEntityValidationException ex)
{
// Retrieve the error messages as a list of strings.
var errorMessages = ex.EntityValidationErrors
.SelectMany(x => x.ValidationErrors)
.Select(x => x.ErrorMessage);
// Join the list to a single string.
var fullErrorMessage = string.Join("; ", errorMessages);
// Combine the original exception message with the new one.
var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);
// Throw a new DbEntityValidationException with the improved exception message.
throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
}
}
}
}
请帮帮我!我快发疯了:(你有一个不从零继承的分部类..你不能做
base.SaveChanges();
,因为你没有一个基
以下是部分内容的一些信息:
这里是基本调用(您可以看到继承)
部分类的一个示例:
public partial class CoOrds
{
private int x;
private int y;
public CoOrds(int x, int y)
{
this.x = x;
this.y = y;
}
}
public partial class CoOrds
{
public void PrintCoOrds()
{
Console.WriteLine("CoOrds: {0},{1}", x, y);
}
}
class TestCoOrds
{
static void Main()
{
CoOrds myCoOrds = new CoOrds(10, 15);
myCoOrds.PrintCoOrds();
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
您可以看到,对象myCoOrds是使用在partial类的第一部分中编写的构造函数实现的,并使用在partial类的第二部分中编写的方法…希望这有助于更好地理解您有一个不是从零继承的partial类。.您不能执行
base.SaveChanges();
因为你没有基地
以下是部分内容的一些信息:
这里是基本调用(您可以看到继承)
部分类的一个示例:
public partial class CoOrds
{
private int x;
private int y;
public CoOrds(int x, int y)
{
this.x = x;
this.y = y;
}
}
public partial class CoOrds
{
public void PrintCoOrds()
{
Console.WriteLine("CoOrds: {0},{1}", x, y);
}
}
class TestCoOrds
{
static void Main()
{
CoOrds myCoOrds = new CoOrds(10, 15);
myCoOrds.PrintCoOrds();
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
您可以看到,对象myCoOrds是使用在partial的第一部分中编写的构造函数实现的,并使用在partial类的第二部分中编写的方法…希望这有助于更好地理解这里的base指的是System.Windows.Forms.Form,您继承了它。Form没有任何SaveChanges调用,EF有。您只需要在Try Catch块中结束save changes调用 在这里,您使用的是部分类 你也可以这样做
public class ExtendedClass : BaseEFClassForMyEntity
{
public override int SaveChanges()
{
try
{
return base.SaveChanges();
}
catch (exception ex)
{
}
}
}
现在创建
扩展类的实例
,这就完成了这里的base指的是System.Windows.Forms.Form,您正在继承它。Form没有任何SaveChanges调用,EF有。您只需要在Try Catch块中结束save changes调用
在这里,您使用的是部分类
你也可以这样做
public class ExtendedClass : BaseEFClassForMyEntity
{
public override int SaveChanges()
{
try
{
return base.SaveChanges();
}
catch (exception ex)
{
}
}
}
现在创建
扩展类的实例
就完成了看来您正在使用实体框架!!您必须在DbContext类中编写此方法
public partial class ApplicationDbContext : DbContext
{
public override int SaveChanges()
{
try
{
return base.SaveChanges();
}
catch (DbEntityValidationException ex)
{
// Retrieve the error messages as a list of strings.
var errorMessages = ex.EntityValidationErrors
.SelectMany(x => x.ValidationErrors)
.Select(x => x.ErrorMessage);
// Join the list to a single string.
var fullErrorMessage = string.Join("; ", errorMessages);
// Combine the original exception message with the new one.
var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);
// Throw a new DbEntityValidationException with the improved exception message.
throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
}
}
}
似乎您正在使用实体框架!!您必须在DbContext类中编写此方法
public partial class ApplicationDbContext : DbContext
{
public override int SaveChanges()
{
try
{
return base.SaveChanges();
}
catch (DbEntityValidationException ex)
{
// Retrieve the error messages as a list of strings.
var errorMessages = ex.EntityValidationErrors
.SelectMany(x => x.ValidationErrors)
.Select(x => x.ErrorMessage);
// Join the list to a single string.
var fullErrorMessage = string.Join("; ", errorMessages);
// Combine the original exception message with the new one.
var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);
// Throw a new DbEntityValidationException with the improved exception message.
throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
}
}
}
还有另一个
SaveChangeExceptionEntities
局部类在别处声明吗?你希望这个类派生自什么?也许它只是一个输入错误,而你的另一个类正确命名为SaveChangeExceptionEntities
?(请注意例外中的c。)@Jon Skeet我有一个类,它的名称是“BuyForm.cs”…在这个类中,我有我的主代码和一个连接到数据库表的实体..我必须处理SaveChange对象的一个exeption…我将这个exeption添加到一个分部类中…我得到了这个错误…我是C的新手,我以前在Java上工作过…如果你是C的新手,我建议从稍微简单一点的事情开始-这真的不清楚你是否还有另一个“角色”是否有另一个SaveChangeExceptionEntities
局部类在其他地方声明?您希望该类派生自什么?也许它只是一个输入错误,而您的另一个类正确命名为SaveChangeExceptionEntities
?(注意例外的c。)@Jon Skeet我有一个类,它的名字是“BuyForm.cs”…在这个类中,我有我的主代码和一个连接到数据库表的实体..我必须处理SaveChange对象的一个exeption…我将这个exeption添加到一个分部类中…我得到了这个错误…我是C的新手,我以前在Java上工作过…如果你是C的新手,我建议从稍微简单一点的事情开始-这真的不清楚你是否有这个分部类的另一个“部分”,或者你是否只是从头开始拼凑名称。我可以从我的主类继承它吗?(参见我的编辑)然后阅读一些文档是的,如果你有一个主类有一个名为SaveChanges的方法,你可以这样声明你的类:public class saveChangeExceptionEntities:MainClass,然后调用base.SaveChanges如果有另一个相同的分部类的声明和相应的基类,那么这个代码就可以了n从我的实体数据库继承它:公共部分类saveChangeExceptionEntities:notebookEntities…现在一切都好了!谢谢你!我很高兴知道:)我可以从我的主类继承它吗?(参见我的编辑)然后阅读一些文档是的,如果你有一个主类有一个名为SaveChanges的方法,你可以这样声明你的类:public class saveChangeExceptionEntities:MainClass,然后调用base.SaveChanges如果有另一个相同的分部类的声明和相应的基类,那么这个代码就可以了从我的实体数据库获取它:公共部分类saveChangeExceptionEntities:notebookEntities…现在一切都好了!谢谢!我很高兴知道:)