好的,首先我在这个问题上看到了几个问题。我已经完成了所有这些,并且没有一个解决方案适合我。 我正在使用asp.net核心1.1.0和SQL Server 2016.我也在使用代码第一种方法。以下是我对该表的映射
public class TierMap : IEntityTypeConfiguration<Tier>
{
public void Map(EntityTypeBuilder<Tier> builder)
{
builder.HasKey(a => a.TierID);
builder.Property(a => a.TierID).UseSqlServerIdentityColumn<int>();
builder.HasOne(a => a.Country)
.WithMany(a => a.Tiers)
.HasForeignKey(a => a.CountryID);
}
}
以下是SQL Server中表格的设计视图:
当我创建Tier
对象的新实例时,除TierID
之外的所有属性都会得到一些值(随机负整数)。因此,插入数据库会引发以下错误
当IDENTITY_INSERT设置为OFF时,无法在表'Tiers'中为identity列插入显式值。
以下是尝试保存数据的代码
[HttpPost("AddTier")]
public async Task<IActionResult> AddTier([FromBody]TierDataModel model)
{
if (!ModelState.IsValid)
{
Response.AddApplicationError("Data is invalid ");
return BadRequest();
}
Tier tier = new Tier();
tier.TierName = model.TierName;
tier.TierNo = model.TierNo;
tier.CountryID = model.CountryID;
_tierService.AddTier(tier);
await _unitOfWorkAsync.SaveChangesAsync();
return Ok();
}
答案 0 :(得分:0)
更改_dbSet.Attach(实体); to _dbSet.Add(entity);在我的Repository Class中解决了问题