虽然我知道网上有很多关于此的文章我似乎找不到解决我的问题的方法。一个原因是我发现的所有文章都没有使用异步功能。这是我的问题:
我有实体:
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Url]
public string LogoUrl { get; set; }
[Required]
public string AdministratorIdentityId { get; set; }
public string Verified { get; set; }
public int AddressId { get; set; }
我在我的db上下文中有以下内容:
protected override void OnModelCreating(ModelBuilder model)
{
model.Entity<RestaurantEntity>()
.Property(p => p.Id)
.ValueGeneratedNever();
base.OnModelCreating(model);
}
我将信息保存到数据库的代码如下:
try
{
RestaurantEntity dbrestaurant = new RestaurantEntity();
dbrestaurant.Name = restaurantName;
dbrestaurant.AdministratorIdentityId = restaurantAdministrator;
dbrestaurant.Verified = GenerateVerifiedCode();
await _appDbContext.Restaurants.AddAsync(dbrestaurant);
await _appDbContext.SaveChangesAsync();
int newpk = dbrestaurant.Id;
return newpk;
}
我的问题是newpk总是0,而在DB中产生适当的值。由于某种原因,EF核心没有检索插入的值。
这是代码检索信息:
这是DB值:
更改,
[Key]
public int Id { get; set; }
至
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id {get;set;}