Hom*_*osa 46 c# sql entity-framework
我在EF上遇到这个错误.
当IDENTITY_INSERT设置为OFF时,无法在表'GroupMembers_New'中为标识列插入显式值.
在分贝列标识增量并在EF的设计文件,StoreGeneratedPattern是identity为好.好像EF每次尝试保存时都试图插入0.
一些建议说ID保留在表上或删除表并重新运行脚本.
有任何想法吗?
这是一些代码:
GroupMember groupMember = new GroupMember();
groupMember.GroupId = group.Id;
groupMember.UserId = (new UserId(group.Owner));
//groupMember.Id = _groupContext.GroupMembers.Count();
group.GroupMembers.Add(groupMember);
_groupContext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)


小智 60
我以前碰到过这个.此错误意味着您尝试将值明确分配给数据库自动分配的列.
建议:更新您的edmx文件以反映您可能在数据库中所做的任何更改.如果数据库自动分配值,您应该在该属性下的设计器文件中看到"IsDbGenerated = true"属性.如果它不存在,您可以手动添加它.
小智 29
试试这个:
using System.ComponentModel.DataAnnotations.Schema;
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public decimal Identity_Col { get; set; }
Run Code Online (Sandbox Code Playgroud)
Entity Framework类文件将这些代码行添加到Identity列.
Ami*_*aqi 16
将这些属性放在属性的顶部:
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
Run Code Online (Sandbox Code Playgroud)
小智 8
我在 AspNetCore 2.x 应用程序中遇到了同样的问题和错误消息。我解决这个问题的唯一方法是删除 DbContext 类的 ModelBuilder.Entity 方法中的这一行:
// remove: entity.Property(e => e.Id).ValueGeneratedNever();
Run Code Online (Sandbox Code Playgroud)
小智 6
谷歌的第一场比赛,所以这是我的解决方案:
首先是EF代码:由于自动增加PK'id'字段和guid列,设计如下:
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid FileToken { get; set; }
Run Code Online (Sandbox Code Playgroud)
有一个重复的身份.我改成了:
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
[DefaultValue("newid()")]
public Guid FileToken { get; set; }
Run Code Online (Sandbox Code Playgroud)
问题就消失了.
希望它能帮到你.
埃里克
| 归档时间: |
|
| 查看次数: |
74453 次 |
| 最近记录: |