对象不包含“savechanges”的定义
本文关键字:定义 savechanges 包含 对象 | 更新日期: 2023-09-27 17:51:23
我出了一个错误,真让人伤脑筋…我添加了一个部分类到我的项目,并把SaveChangeExeptionEntities为它的名字…
我得到这个错误:
对象不包含"SaveChanges"的定义
,下面是代码:
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在这里指的是System.Windows.Forms。形式,你继承了它。Form没有SaveChanges调用,EF有。您只需要在Try Catch块中封装save changes调用。
你在这里使用部分类有些混乱。
你也可以这样做
public class ExtendedClass : BaseEFClassForMyEntity
{
public override int SaveChanges()
{
try
{
return base.SaveChanges();
}
catch (exception ex)
{
}
}
}
现在创建ExtendedClass
的实例,完成
似乎你正在使用实体框架!!你必须在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);
}
}
}
你有一个不是从无到有继承的部分类,你不能做base.SaveChanges();
,因为你没有基
这里是部分的一些信息:https://msdn.microsoft.com/en-us/library/wa80x488 (v = vs.110) . aspx
和这里的基调用(您可以看到继承)https://msdn.microsoft.com/it-it/library/hfw7t1ce.aspx
一个局部类的例子:
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();
}
}
可以看到对象myords是用分部类第一部分中编写的构造函数实现的,并使用分部类第二部分中编写的方法…