我使用了User从IdentityUserusing派生的自定义实现Asp.Net Core Identity:
public class AppUser : IdentityUser
{
...
}
Run Code Online (Sandbox Code Playgroud)
如果我调用该方法:
var identityResult = await UserManager.CreateAsync(user);
Run Code Online (Sandbox Code Playgroud)
我收到错误:
System.InvalidOperationException:无法跟踪“AppUser”类型的实体,因为主键属性“Id”为空。
它的工作原理完全符合的版本Microsoft.AspNetCore.Identity.EntityFrameworkCore- 2.2.0,但升级后3.0.0-这是行不通的。
我在测试用户创建过程中也遇到同样的错误,我使用以下UserManager配置:
我正在尝试使用 Entity Framework Core 访问 CosmosDB 集合。
我的数据库有各种数据,但主键是“id”我的模型有一个子集,但使用“Id”而不是“id”。
我已经检查过我能够读/写一个测试数据库,它包含一个“id”的副本作为“Id”。这不会导致任何问题。
据我所知,https: //docs.microsoft.com/en-us/ef/core/modeling/indexes 应该可以设置“HasName”属性。
[DataContract]
[Serializable]
public class TestModel
{
[DataMember]
[JsonProperty("id")]
public string Id { get; set; }
[DataMember]
public string Pid { get; set; }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<TestModel>().ToContainer("TestModel");
modelBuilder.Entity<TestModel>().HasPartitionKey(x => x.Pid);
modelBuilder.Entity<TestModel>().HasNoDiscriminator();
modelBuilder.Entity<TestModel>().HasKey(b => b.Id).HasName("id");
}
Run Code Online (Sandbox Code Playgroud)
使用这个,我仍然得到一个错误。
InvalidOperationException:无法跟踪类型为“TestModel”的实体,因为主键属性“Id”为空。
我也曾在反复试验中,尝试使用。- HasName + HasKey / HasIndex - HasColumnName + 属性
entity-framework entity-framework-core .net-core azure-cosmosdb