新开始学习MVC3 做了个项目,总是抱错,不知道问题在那,请高手指点
先将源代码贴上,UserInfo 模型层
using System;
using System.Data.Entity;
namespace Mvc.Models
{
public class UserInfo
{
public int UserID { get; set; }
public string UserName { get; set; }
public bool UserSex { get; set; }
public DateTime UserDate { get; set; }
}
public class UserDBcontext : DbContext {
public DbSet<UserInfo> DbTest { get; set; }
}
}
控制层
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Mvc.Models;
namespace Mvc.Controllers
{
public class UserInfoController : Controller
{
//
// GET: /Use/
UserDBcontext us = new UserDBcontext();
public ActionResult Index()
{
var skk = from m in us.DbTest where m.UserID < 100 select m;
return View(skk.ToList());
}
}
}
wiew 显示层
@model IEnumerable<Mvc.Models.UserInfo>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
UserID
</th>
<th>
UserName
</th>
<th>
UserSex
</th>
<th>
UserDate
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.UserID)
</td>
<td>
@Html.DisplayFor(modelItem => item.UserName)
</td>
<td>
@Html.DisplayFor(modelItem => item.UserSex)
</td>
<td>
@Html.DisplayFor(modelItem => item.UserDate)
</td>
<td>
</td>
</tr>
}
</table>
web.config 文件
<configuration>
<connectionStrings>
<add name="DbTest"
connectionString=" Data Source=.;
Initial Catalog=DbTest;Persist Security Info=True;
User ID=sa;Password=1s@u@n* "
providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
</profile>
<roleManager enabled="false">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages"/>
</namespaces>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
数据库存在 DBTest 数据库 UserInfo 表结构
UserId int
UserName varchar(50)
UserSex bit
UserDate datetime
请各位大虾们版纳故我解决以下阿。小弟再此感谢了
[解决办法]
顶起来。。
------解决方案--------------------
为 UserInfo 表定义一个主键。
如果是 CodeFirst,
[key]
public int UserID { get; set; }
否则在数据库里面为 UserID 设立主键
[解决办法]
var skk = from m in us.DbTest
select { UName= m.UserName };
你这样看看报错不。
[解决办法]
把那个userid在数据库中定义为主键