我在WebApi 2默認項目中找不到「ApplicationContext」。在MVC5應用程序中有一個模型類中調用的ApplicationContext使用在web.config中定義的ConnectionString:Webapi 2 ApplicationContext丟失
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}
}
它很容易增加DbSets並在一個MVC5網頁項目一個上下文的所有數據,但是我無法在webapi 2項目中找到此課程。
在WebApi項目中,必須有一個擴展DbContext或IdentityDbContext的類,該類還使用連接字符串,但我已搜索整個項目並找不到它。是否可以在包含所有帳戶數據(用戶名,密碼哈希,角色,externallogins等)以及由我定義的所有其他數據(DbSets)的webapi 2項目中擁有應用程序範圍的DbContext?
在ApiController中似乎有一個UserManager類,但我看不出如何在那裏添加我自己的自定義數據。
但是,如何爲IdentityUser設置[Required]和[StringLength]屬性爲例子?我嘗試將DbSet Users添加到新創建的ApplicationContext中,並使用EntityTypeConfigurations來配置Required和Stringlength屬性,但我得到了此錯誤: 不支持每種類型的多個對象集。對象集「Users」和「Users」都可以包含「Applicationuser」類型的實例(擴展IdentityUser)。所以現在我剩下一個允許空值的數據庫,並且用戶名長度沒有限制(bindingmodel除外)。 –
neo112
您不必爲* IdentityUser *實施添加* DbSet *。這就是你得到這個錯誤信息的原因。 * null *值肯定是一個問題,但是您提到了一個很好的解決方法:在視圖/綁定模型上設置屬性。如果您正確地執行此操作,API的用戶將無法插入長度爲f.e的用戶名。三十個字符。 –