加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 元数据集合中已存在具有标识“Id”的项目.参数名称:item

发布时间:2020-12-15 04:30:50 所属栏目:百科 来源:网络整理
导读:我的所有实体都有一个基类: public class EntityTKey : IEntityTKey{ dynamic IEntity.Id { get { return this.Id; } set { this.Id = value; } } public TKey Id { get; set; }} 例如状态实体: [MetadataType(typeof(StatusMetadata))]public partial cla
我的所有实体都有一个基类:
public class Entity<TKey> : IEntity<TKey>
{
    dynamic IEntity.Id
    {
        get
        {
            return this.Id;
        }
        set
        {
            this.Id = value;
        }
    }

    public TKey Id { get; set; }
}

例如状态实体:

[MetadataType(typeof(StatusMetadata))]
public partial class Status : Entity<byte>
{
       public string Title { get; set; }
}

当我对数据库运行查询时,我收到以下错误:“具有标识’Id’的项已经存在于元数据集合中.参数名称:item”.
有没有办法解决这个问题,或者这是由继承引起的问题,我不能从任何类继承我的实体?

解决方法

这似乎是一般错误,寻找一些见解,我看到:

两个表可以具有相同的主键名称.查看LightSwitch表,它们都有一个名为Id的主键.

在http://social.msdn.microsoft.com/Forums/vstudio/en-US/bd8d47da-d1b4-4be8-a7e5-193fb5360060/the-item-with-identity-actionpk-already-exists-in-the-metadata-collection?forum=lightswitch

因此,我查看了所有实体,并获得了一个更改了Identiy数据类型的实体,并继承了另一个具有int Id属性的类.

我是否更改此公共新字符串Id {get;组;到公共字符串Id {get;组;像其他人一样删除继承,一切正常.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读