我嘗試從FirstOrDefault
的幫助下從我的表中使用實體框架獲取數據。 控制器代碼如下:FirstOrDefault沒有給出相應的答案
public ActionResult getUser(MembershipModel model)
{
ProviderImplementation.Edmx.ProviderEntities providerEntities = new ProviderImplementation.Edmx.ProviderEntities();
//var membershipModel = new MembershipModel();
//var model = ProviderImplementation.Models.MembershipModel;
//bool isUserOnline = true;
if (!ModelState.IsValid)
{
var isValid = Membership.GetUser(model.UserName, true);
if (isValid != null)
{
var rowData = providerEntities.Users.Where(u => u.UserName.Equals(model.UserName)).FirstOrDefault();
model.UserName = rowData.UserName;
model.Password = rowData.Password;
model.UserId = Convert.ToInt32(rowData.UserId);
model.RoleId = Convert.ToInt32(rowData.RoleId);
//var singleValue = providerEntities.Users.Find(model.UserName);
ViewBag.User = "Found";
}
else
{
ViewBag.User = "Not Found";
}
}
else
{
var error = ModelState.Values.SelectMany(v => v.Errors);
ModelState.AddModelError("NoModelError", error.ToString());
}
return View(model);
}
也是我的表中的數據如下: 表名稱:用戶
現在,我嘗試了很多東西它打印以及在視圖中的數據選擇特定的記錄。
問題是這裏:
{工作正常} - > 1.當我獲取該記錄以用戶名「阿巴斯」,因爲它獲取與用戶ID = 2它得到在視圖 視圖代碼印刷以及是第一次遇到:
<div style="margin-left: 200px;">
<table cellpadding="10" cellspacing="10">
<tr>
<th>Get User Details</th>
</tr>
<tr>
<th>@ViewBag.User</th>
</tr>
<tr>
<td>@Html.LabelFor(m => m.UserId)</td>
<td>@Html.LabelFor(m => m.UserName)</td>
<td>@Html.LabelFor(m => m.Password)</td>
<td>@Html.LabelFor(m => m.RoleId)</td>
</tr>
<tr>
<td>@Html.DisplayFor(Model=>Model.UserId)</td>
<td>@Html.DisplayFor(Model=>Model.UserName)</td>
<td>@Html.DisplayFor(Model=>Model.Password)</td>
<td>@Html.DisplayFor(Model=>Model.RoleId)</td>
</tr>
</table>
</div>
{問題} - > 2.當我取得與用戶名「阿巴斯」具有用戶ID = 4,則FirstOrDefault打印用戶名的上述數據=「阿巴斯」作爲第一個遇到的和不打印用戶名記錄= View中的「Abbas」。
注意: SingleOrDefault返回一個異常,指示它找到多個實例。
更新:在調試時,當我更改值時,它完全從數據庫打印。
是什麼問題? –
請閱讀http://stackoverflow.com/help/how-to-ask,然後編輯問題 – MikeT
好吧,我會閱讀它並嘗試根據需要進行編輯。 –