我是新來的身份框架上新的自定義實體的變化,也許我在做什麼這裏是不是最好的方法,但無論哪種方式,這是我的情景:身份框架2不適
旁「角色」因素,我的應用程序的某些區域應該考慮如果給定的用戶連接到給定的「公司」。
我創建了一個新的實體「公司」(非常簡單,只有Id和Name)和一個關係實體「UserCompany」(與用戶和公司的Id)。我試圖使它與身份框架上角色和用戶之間使用的結構儘可能相似。
在我的ApplicationDbContext中,我添加了DbSets和一些邏輯,例如向用戶添加公司列表。
我面臨的問題是「SaveChanges」不會將更改應用到數據庫。 *編輯:不引發錯誤,SaveChanges()的結果爲「1」。
這裏是我的ApplicationDbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public DbSet<Company> Companies { get; set; }
public DbSet<UserCompany> UserCompanies { get; set; }
//constructors, etc...
public void AddToCompanies(string _userId, params string[] _companyIds)
{
foreach (var companyId in _companyIds)
{
UserCompanies.Add(new UserCompany()
{
UserId = _userId,
DataAreaId = companyId
});
}
int result = this.SaveChanges();
}
}
一個示例代碼這裏是我如何映射這個「UserCompany」實體
public class UserCompany
{
[Key, Column(Order = 1), ForeignKey("ApplicationUser")]
public string UserId { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
[Key, Column(Order = 2), ForeignKey("Company")]
public string DataAreaId { get; set; }
public virtual Company Company { get; set; }
}
在我UserAdminController類我創建了一個私人ApplicationDbContext對象負責用於調用這個邏輯。我懷疑在處理兩個不同的上下文來保存這些數據(一個在ApplicationUserManager對象和這個新對象中)的時候存在一些問題,但我不確定這是否真的是問題,或者如果我是在這裏丟失別的東西。
任何幫助,將不勝感激!
你確定這些條目沒有被保存到數據庫嗎?你是否做過手動檢查? – JuanR
嗨胡安,我通過SSMS檢查,數據不存在 –