我有三個類User
,Role
和UserRole
。EF代碼第一個例外實體類型不是使用簡單Odata客戶端的當前上下文的模型的一部分
使用代碼首先,我創建的表像之下
DbContext.cs
rotected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer<CodeFirstDBContext>(null);
modelBuilder.Entity<DomainModels.Security.User>().HasKey(x => x.Id);
modelBuilder.Entity<DomainModels.Security.User>().Property(x => x.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
modelBuilder.Entity<DomainModels.Security.Role>().HasKey(x => x.Id);
modelBuilder.Entity<DomainModels.Security.Role>().Property(x => x.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
// UserRoles table column names as UserId and RoleId instead of default created by ER as User_Id and Role_Id.
modelBuilder.Entity<DomainModels.Security.User>().HasMany(x => x.Roles).WithMany(y => y.Users).Map(
of =>
{
of.MapLeftKey("UserId");
of.MapRightKey("RoleId");
of.ToTable("UserRoles");
});
}
public virtual DbSet<DomainModels.Security.Role> Roles { get; set; }
public virtual DbSet<DomainModels.Security.User> Users { get; set; }
不添加UserRole
DbSet因爲它是由EF在很多創造了許多關係
我的問題是,當我嘗試執行任何上UserRole
CRUD操作拋出異常:
的實體類型的UserRole不是型號爲當前上下文的一部分0我們使用
simple odata
var resul = await odataclient.For<UserRole>().Set(new { UserId = userId, RoleId = roleId }).InsertEntryAsync();
我不知道Simple OData Client
是否支持此與否。 我該怎麼辦?
你更新數據庫的理解? – tmg
是的我已經更新數據庫成功! – Neo