MVC4使用db首先與簡單成員如何查詢簡單成員數據庫
我有我的會員資格工作到我可以保存一個新用戶的點。一旦這個人被註冊了,我需要渲染一個新的視圖,以便他們可以填寫更多的信息,所以我需要將UserProfile表中新創建的用戶標識傳遞給新視圖。我曾嘗試修改模板寄存器的方法是:
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { Email = model.Email }, true);
WebSecurity.Login(model.UserName, model.Password);
//Get the userid for this new user
var db = new UsersContext();
int id = db.UserProfiles.Where(x => x.UserName == model.UserName).Select(x => x.UserId).FirstOrDefault();
return RedirectToAction("Edit", "Profile", id);
}
這給了我這個錯誤:
\ tSystem.Data.Entity.Edm.EdmEntityType:的EntityType「用戶配置」沒有定義鍵。定義此EntityType的關鍵字。 \ tSystem.Data.Entity.Edm.EdmEntitySet:EntityType:EntitySet'UserProfiles'基於沒有定義鍵的類型'UserProfile'。
我相信這個錯誤與嘗試在不是edmx模型的表上使用EF有關。我沒有將任何簡單成員表(UserProfile,Membership,Roles等)添加到我的edmx文件中,因爲當我這樣做時,我得到重複類錯誤,我猜測是因爲SM表首先創建了代碼。
我從來沒有做過任何代碼,答案是否存在?或者我需要將SM表添加到我的edmx模型,以便查詢它們。如果是這樣,我該如何解決重複類錯誤?
我在我的web配置中有2個獨立的連接字符串。
編輯++++++++++
我一直在研究,發現了不同的方式,但我得到了同樣的錯誤。
int id;
using (var db = new UsersContext())
{
var user = db.UserProfiles.Find(model.UserName);
id = user.UserId;
}
我在'使用'行中得到錯誤。下面是UsersContext代碼:什麼是你定義
<add name="SecurityEntities" connectionString="data source=(localdb)\v11.0;initial catalog=OurAgreements;user id=oaadmin;password=136VDSyPLrcfgPfw3BIH;multipleactiveresultsets=True;application name=EntityFramework" providerName="System.Data.SqlClient" />
你能看到我錯了
謝謝凱文的響應。我添加了鍵和標識屬性,這使得執行查詢成爲可能,但它返回爲空。然後我添加了「表格」屬性,它錯誤地指出數據庫已經改變,我應該使用遷移。我不能擺脫UserProfile模型,並將表添加到我的edmx文件並用作正常的ef連接?我從來沒有先做過代碼。 – BattlFrog
請看看我更新的答案。 –