C# 如何使用通用linq to entities存储库的更新方法

C# 如何使用通用linq to entities存储库的更新方法,c#,C#,我已经实现了以下代码: 通用存储库: 公共抽象类BaseRepository:IRepository,其中T:class { 公共无效更新(T实体) { 使用(上下文=新上下文()) { context.Entry(entity.State=EntityState.Modified; SaveChanges(); } } } 特定存储库: UI层: 单击“刷新”按钮时,出现以下错误: EntityFramework.dll中发生了类型为“System.Data.Entity.Validat

我已经实现了以下代码:

通用存储库:

公共抽象类BaseRepository:IRepository,其中T:class
{
公共无效更新(T实体)
{
使用(上下文=新上下文())
{
context.Entry(entity.State=EntityState.Modified;
SaveChanges();
}
}
}
特定存储库:

UI层:

单击“刷新”按钮时,出现以下错误:

EntityFramework.dll中发生了类型为“System.Data.Entity.Validation.DbEntityValidationException”的首次意外异常

其他信息:一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。

public class RoleRepository : BaseRepository<Role>
{

}
public class RoleBL
{
    static RoleRepository rolRepository = new RoleRepository();


    public static Role Edit(int RoleId)
    {
        return rolRepository.Single(r => r.RoleId == RoleId);
    }
    public static void Update(Role roleData)
    {
        rolRepository.Update(roleData);
    }
}
private void btnRefresh_Click(object sender, EventArgs e)
{
    Role role = new Role()
    {
        RoleId = this.roleId,
        Name = txtName.Text,
        Description = txtDescription.Text
    };
    RoleBL.Update(role);
}