InvalidOperationException:该属性是对象的关键信息的一部分,无法修改 [英] InvalidOperationException: The property is part of the object's key information and cannot be modified

查看:141
本文介绍了InvalidOperationException:该属性是对象的关键信息的一部分,无法修改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



这是我如何解决这个问题:



1)我需要将此位列添加到现有表中。

  ALTER TABLE BooksDB.dbo .Books 
添加编辑位NOT NULL DEFAULT(0),

2)更新了我的EF



3)当我尝试更改实体对象的编辑属性时,我从主题行中得到错误。



为什么这样?



EF对象声明:

  ///< summary> 
///没有元数据文档可用。
///< / summary>
[EdmScalarPropertyAttribute(EntityKeyProperty = true,IsNullable = false)]
[DataMemberAttribute()]
public global :: System.Boolean edited
{
get
{
return _edited;
}
set
{
if(_edited!= value)
{
OneditedChanging(value);
ReportPropertyChanging(editing);
_edited = StructuralObject.SetValidValue(value);
ReportPropertyChanged(editing);
OneditedChanged();
}
}
}
private global :: System.Boolean _edited;
partial void OneditedChanging(global :: System.Boolean value);
partial void OneditedChanged();


解决方案

通过向表中添加PRIMARY KEY可以解决此问题。


I'm getting this error when I try to change column value.

Here is how I got to this problem:

1) I was needed to add this bit column to an Existing table.

    ALTER TABLE BooksDB.dbo.Books
    ADD edited bit NOT NULL DEFAULT(0),

2) Updated my EF model in project.

3) Now when I try to change 'edited' property of entity object, I'm getting the error from Subject line.

Why is that?

EF object declaration:

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
    [DataMemberAttribute()]
    public global::System.Boolean edited
    {
        get
        {
            return _edited;
        }
        set
        {
            if (_edited != value)
            {
                OneditedChanging(value);
                ReportPropertyChanging("edited");
                _edited = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("edited");
                OneditedChanged();
            }
        }
    }
    private global::System.Boolean _edited;
    partial void OneditedChanging(global::System.Boolean value);
    partial void OneditedChanged();

解决方案

This problem solved by adding PRIMARY KEY to the table.

这篇关于InvalidOperationException:该属性是对象的关键信息的一部分,无法修改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆