相关疑难解决方法(0)

使用Entity Framework手动输入密钥

我试图首先使用Entity Framework代码来处理一个简单的数据库项目,然后遇到一个我根本想不通的问题.

我注意到EF正在为我的表设置ID,每次自动增加1,完全忽略我为该字段手动输入的值.经过一些搜索,我的理解是,正确的方法是禁用此行为:

modelBuilder.Entity<Event>().Property(e => e.EventID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Run Code Online (Sandbox Code Playgroud)

但是现在我只是得到了这个错误,我不明白为什么:

未处理的异常:System.Data.Entity.Infrastructure.DbUpdateException:更新条目时发生错误.有关详细信息,请参阅内部异常 ---

System.Data.UpdateException:更新条目时发生错误.有关详细信息,请参阅内部异常 ---> System.Data.SqlClient.SqlException:当IDENTITY_INSERT设置为OFF时,无法在表'Events'中为identity列插入显式值.

如果它有用,这是有问题的POCO类:

public class Event
{
    [Key, Required]
    public int EventID { get; set; }

    public string EventType { get; set; } //TODO: Event Type Table later on
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }

    public virtual ICollection<Match> Matches { get; set; }
    public virtual ICollection<EventParticipation> EventParticipation { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

c# sql asp.net entity-framework entity-framework-core

46
推荐指数
2
解决办法
4万
查看次数

EF Core Add函数返回负id

今天我注意到一个奇怪的事情,当我试图保存一个实体并在EF Core中返回它的id时

之前: 在将ID添加到数据库之前,Id为0 后: 现在id已更改为负值

我正在考虑是否在调用saveChanges()之前,但它适用于具有类似设置的另一个实体.

ps:我使用工作单元来保存最后的所有更改.

是什么原因?

entity-framework asp.net-core-1.0

23
推荐指数
1
解决办法
5636
查看次数